What Is a Service Mesh - and When You Actually Don't Need One
A service mesh is an infrastructure layer that takes over the network calls between your services: a small proxy runs alongside every service instance, and every request in and out of that instance passes through it. The purpose of a service mesh is to pull retries, timeouts, load balancing, TLS and per-call metrics out of your application code and push them one layer down, where they are configuration rather than library versions. The problem it exists to solve is duplication with drift. In a system with twenty services written in four languages, each one has its own HTTP client, its own idea of a sensible timeout, its own retry behaviour and its own half-finished metrics. Changing any of that globally means twenty pull requests, four library ecosystems and a release train you do not control. The mesh replaces that with a data plane of identical proxies and a control plane that configures them. You get uniform behaviour and a single place to enforce it. You pay for it with two ex...