Enterprise engineering

Do I need Kubernetes, microservices or sharding?

Usually not at first. These are justified by measurements and team shape, not by looking "enterprise":

  • Modular monolith first — split into microservices only for domain or team scaling, independent deployment and when you have the operations maturity (service discovery, inter-service auth, tracing, contracts, distributed consistency)
  • Kubernetes — for portability, multi-service orchestration and a real platform team
  • Sharding — only when a single database node cannot cope after optimisation; it complicates joins, transactions, resharding and tenant routing. Try indexes, caching, vertical scaling, replicas and partitioning first
  • Multi-region active-active — needs a cross-region consistency plan and a large operations budget
  • Kafka / Elasticsearch — add when the workload demands them, not to appear modern

If you do adopt one, write an ADR that shows the benefit exceeds the operational risk and cost.

All guides