Hi Microservices Gurus,
I had a question on service to service communication architecture of Microservices. Istio or any service mesh can make the routing, discovery and resilience of Microservices' communication easy to manage. However, it does not cover important aspects of transactions spanning over more than one Microservice( Kind of distributed transactions) , which is included well in the event based architectures of Microservices. However, apparently, event driven architecture misses the aspects which service mesh covers well. So , was wondering, which is the better approach or there can be a way to mix both -service mesh with event driven architecture to leverage advantages of both patterns. But if that mix is possible, then would the event driven bus (like Kafka) not interfere with internal working patterns of side car proxies/control plane which Istio uses.
your questions is service mesh does not cover important aspects of transactions spanning over more than one Microservice( Kind of distributed transactions) , which is included well in the event based architectures of Microservices, well that is not true. Service Mesh handles well in aspect of distributed microservice communication but service mesh works well to support synchronous RESTful and general request-reply interactions, it doesn’t support asynchronous, event-driven interactions, nor is it well suited for connecting cloud-native microservices with legacy applications. For event driven architecture you have to look system like Event Mesh instead of Service Mesh. Check out the link...
You are mixing up several things.
But Service meshes do not solve any other inter service data exchange problems which are solved using Kafka or any other message broker. Your microservices can be even driven or not - service mesh will not interfere with that.
Service Mesh and Event-Driven Architectures like Apache Kafka are complementary and orthogonal:
Check out the following material I wrote (blog post, slide deck, video recording) which covers these concepts and the combination of them in much more detail:
Blog Post: Service Mesh and Cloud-Native Microservices with Apache Kafka, Kubernetes and Envoy, Istio, Linkerd
Slide Deck: Kafka, Kubernetes, Envoy and Istio
Video Recording: Service Mesh and Event Driven Architectures like Apache Kafka