4

Since Service Meshes like Istio and Linkerd focuses on inter-service communication, instead of using Kafka for Event Driven Messaging, can I extend service mesh to achieve Event Driven Messaging?

Nathan Aw (Singapore)

Nathan Aw
  • 545
  • 5
  • 18

1 Answers1

7

Event driven messaging is possible with Istio (and I guess with Linkerd too). Basically, the service proxies will intercept events traffic like any other TCP traffic[1] and forward them to the services, and that still works with Kafka in the middle.

However, as you put it, service meshes are focused on service-to-service communication so you might not be able to regulate traffic between a producer and a consumer as easily as with HTTP communication, as this communication passes through a message broker. So, some features of service mesh perhaps won't make so much sense, like traffic shifting. While other features continue to be relevant, such as having a consistent observability or security.

There's an interesting blog post about scaling Istio + Kafka here, which might give you some ideas: https://itnext.io/scalable-microservice-demo-k8s-istio-kafka-344a2610eba3

[1]: "Like any other TCP traffic" might not entirely be true if you use Envoy's Kafka protocol filter, which might add new capabilities in dealing with kafka messages: https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/kafka_broker_filter (e.g. more telemetry). But that's not required to just make it work.

Joel
  • 2,374
  • 17
  • 26
  • nice! I want to reduce the moving parts and I think this is a great first step. To further increase the resiliency of the service mesh, is it possible to setup a distributed service mesh layer? – Nathan Aw Jun 03 '20 at 09:27