A service mesh is a layer of infrastructure to handle service-to-service communication without adding complexity to the applications themselves. When an application needs to send data and messages to other applications, the service mesh takes care of it, handling any failures.
A service mesh is usually implemented with proxies that coordinate the traffic between the services, making the communication more efficient and resilient.
A control plane determines where traffic goes and a data plane forwards the requests, retries as needed, and creates logs for debugging.