Service Mesh
- A Service mesh is a dedicated infrastructure layer for handling service to service communication in order to make it visible, manageable and controlled
- Refer Here to this article from Phil Calcado to understand history of the service mesh pattern
- Refer Here
- Basic Architecture
- Every service mesh solution should have two distinct components that behave somewhat differently: a data plane & a control plane

- The data plane is the layer responsible for moving your data (e.g service request) through your service topology in real time
- Because this layer is implemented as series of interconnected proxies, when your application makes remote service calls, they are typically unaware of the data plane’s existence (i.e not application code changes to use most of the features of service mesh)
- A service mesh should also have a control plane. When we interact with service mesh we interact with control plane.
- Control plane exposes new primitivies to compose some form of policy (routing decisions, authorizations, rate limits & so on)
- When this policy is ready for use, the data plane can refer the new policy and alter its behavior accordingly.
- Every service mesh solution should have two distinct components that behave somewhat differently: a data plane & a control plane
Problem
- There is a new breed of communication introduced by microservice architectures. Which are referred as the the north-south vs east-west traffic pattern (North-south is server to client traffic & east-west is server-server traffic)
- Refer Here for the fallacies of distributed computing
