I am planning to introduce K8s/Istio into my infra. Right now I have plenty of services which communicate with each other using RabbitMQ.
Service mesh concept seems to assume all services should be synchronous.
I'd like to keep at least some of my services async and take advantage of Mutual TLS Authentication which istio provides and also aggregated monitoring.
Is there any tools/methods which can help me to streamline management of both Sync and Async services?
Thanks,
Please note that Istio can control non-HTTP protocols on top of TCP, including providing Mutual TLS Authentication. See this example of mTLS for HTTPS (treated as opaque TCP) - https://preliminary.istio.io/docs/tasks/security/https-overlay.html.
I am not familiar with AMQP, but since it is a protocol on top TCP, it should be possible to control it by Istio as opaque TCP.
Apparently there is WIP to add Async (Event driven) messaging to Envoy Proxy through Kafka filter: https://github.com/envoyproxy/envoy/issues/2852
Also good summary on using a Service Mesh for Event-Driven Messaging here: https://www.infoq.com/articles/service-mesh-event-driven-messaging