Service mesh
A service mesh handles all of the inter-process communication as well as dealing with service discovery and reliability (load balancing etc).
A service mesh is a dedicated infrastructure layer that manages all aspects of service-to-service communication within distributed software.
Typically, a service mesh will encompass the following features:
- Load balancing: Distributing traffic evenly across replicated nodes, improving resilience to failure of any single node.
- Service discovery: Allowing services to find and communicate with each other, typically through a service registry.
- Routing, retries, circuit breaking and other traffic management responsibilities.
- Security: Handling service-to-service authentication and authorization, and encryption of communication channels.
- Observability: Providing monitoring and tracing capabilities.
Popular service mesh solutions include Istio and Linkerd.