A Service Mesh is a dedicated infrastructure layer for handling service-to-service communication. It's usually implemented as lightweight network proxies (Sidecars) deployed alongside the application code.
When to Use
Mature Microservices: You have 20+ services and managing retries, timeouts, and auth in each language is becoming a nightmare.
Zero Trust Security: You need mTLS (Mutual TLS) between all services.
Observability: You need uniform metrics (Gold signals) and tracing across a polyglot stack.
Core Concepts
Sidecar Proxy
The mesh injects a proxy (e.g., Envoy) next to your app container. Your app talks to localhost, the proxy handles the network magic.
Control Plane
The brain that configures the proxies (e.g., Istio Control Plane).
Data Plane
The set of proxies that actually route the traffic.