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.