Ask HN: Are Service Meshes an Antipattern?
Service mesh solutions like Istio and Linkerd are gaining a lot of traction in the industry. However, it seems to me like they are predicated on what I always though was a microservices antipattern i.e. a synchronous chain of microservices calling each other (as opposed to the prescribed "right way" i.e. all inter-service communication is asynchronous through some sort of messaging). I am hesitant to outright dismiss them looking at the hype and adoption. What am I missing here, are they just helping people make their mistakes more easily?
5 comments
[ 3.5 ms ] story [ 26.1 ms ] threadYou are confusing the enterprise service bus architecture and micro service architecture.
Async architecture is not always the right answer. If you need it, than the recommended architecture is to use a center event log (i.e. kafka) and feed all the services from it.
(I used to work at Twitter, which went through this same transformation, but if you watch tech talks from pretty much any other modern company that it building a big distributed system, you'll see the same pattern.)
You could alternatively get service mesh features in the application layer with libraries like Finagle, Hysterix, etc, and not pay that cost. But then you're tied to particular languages, and changing platform features requires making code changes.
It's a tradeoff. I talked about this at Kubecon earlier this year: https://www.youtube.com/watch?v=Z3nfLI3z0hc#t=4m58