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].