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