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