I just watched that amazing videos from Matt Ranney
Here are my takeaways and opinionated summary:
- Use RPC for service to service communications: gRPC seems to be a good way of tackling it
- Use many repositories
- Profiling should be unified: flamegraphs seem to be a good solution (Go profiling is great too)
- Premature optimization is bad but performance monitoring is crucial!
- Trace requests, keep context within all logs
- Log a lot, but only on a portion of your production architecture as logging can have a big cost.
- Log consistenly across all services
- Do load test in production all the time
- Systematically shut down services randomly (chaos monkey like)
- Use available aas (as a service) as much as possible
- Politics definition: when the property Company > Team > Self is violated
- Everything is a tradeoffs