
There is a connectivity overlap within level 7 between the API Gateway and a Service Mesh. Service Mesh’s, which are decentralized proxies running against each container, are used to manage network and routing between services. API Gateway policies (centralized) can do the same. When you design an API Gateway within a Service Mesh architecture you must clearly delineate the ‘owner’ of the service overlap.

Within Level 7 (networking) the service proxy connectivity capabilities will conflict with the API Gateway connectivity features. The capabilities of the Service Mesh around networking are more comprehensive since they include both Level 4 and Level 7 traffic, which means they cover all TCP and not just HTTP traffic. More use cases are thus covered by the service mesh for networking and can be ‘decoupled’ from the API Gateway. However, the full API management life-cycle-management will still reside in the API gateway pattern.
We need to consider the design of both the API Gateway and Service Mesh. Within the Service Mesh we will deploy a proxy data plane alongside every replica of every service. This can be easy to do when a single team wants to deploy service mesh within the scope of its own product, or perhaps its own line of business, but it gets harder to implement when we want to deploy the proxy outside of that scope for four reasons.
Complications when deploying a Service Mesh:
In summary API gateways and Service Meshes focus on different use cases, as given below.
