<p>Say you are using Microservices with Docker Containers and Kubernetes.</p>

<p>If you use an API Gateway (e.g. Azure API Gateway) in front of your microservices to handle composite UI and authentication, do you still need a Service Mesh to handle Service Discovery and Circuit Breaker? Is there any functionality in Azure API Gateway to handle these kind of challenges? How? </p>

<p>API gateways are applied on Layer 7 of OSI model or you can say to manage traffic coming from outside network ( sometimes also called north/south traffic ) , whereas Service Mesh is applied to Layer 4 of OSI model or to manager inter-services communications ( sometimes also called as east/west traffic). Some examples of API Gateway features are Reverse Proxy,Load Balancing , Authentication and Authorization , IP Listing , Rate-Limiting etc. </p>

<p>Service Mesh, on the other hand, works like a proxy or a side-car pattern which de-couples the communication responsibility of the service and handles other concerns such as Circuit breaker , timeouts , retries , service-discovery etc. </p>

<p>If you happen to use Kubernetes and Microservices then you might want to explore other solutions such as <a href="https://www.getambassador.io/user-guide/with-istio/" rel="noreferrer">Ambassador + Istio</a> Or  <a href="https://konghq.com/kong/" rel="noreferrer">Kong</a> which works as Gateway as well as Service Mesh.</p>
