Tuesday, January 15, 2019

Service Mesh - Event Mesh??

Service Meshes and Istio in particular are the next step in modern software platforms. They further standardize the runtime platform and help abstract the underlying layers.

Now service meshes strongly focus on synchronous request/reply (request driven) interactions. Their data plane is based on advanced usage of proxies, Envoy in case of Istio. Primarily protocols are HTTP 1.1 and 2.0, with some gRPC.

But a micro services architecture also requires event driven communication. Some question/idea that came up: why not use a messaging solution (pub/sub and/or queuing) as the data plane of a service mesh?

Multiple types of messaging systems exist: compliant with the JMS API, compliant with the AMQP protocol or modern incarnations such as Kafka or NATS.

Event Mesh (source: Solace.com)
While searching around, couldn't find much support for such "event mesh". Solace is a lesser known vendor of messaging solutions that talks about its event mesh in its blog and positions it as an offering. But couldn't find information on how to use Solace's product as a data plane for in a service mesh such as Istio or Linkerd.

Strange that no other vendors or initiatives talk about using a Message Oriented Middleware (MOM) as the data plan of a service mesh. It is common practice in the integration world to switch from http to messaging inbound. And leverage light weight integration platform as ingress for a service mesh?