Ask HN: Are Service Meshes an Antipattern?
1–6 of 6 posts
Re: Ask HN: Are Service Meshes an Antipattern?
#2You 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.
Re: Ask HN: Are Service Meshes an Antipattern?
#3(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.)
Re: Ask HN: Are Service Meshes an Antipattern?
#4Because every system that needs to return a response within N ms (which is pretty much every app, service, API call, etc) ends up being implemented with synchronous calls, with messaging only used for truly offline bits. There's a good writeup of why here: https://programmingisterrible.com/post/162346490883/how-do-y... , with this great quote: "In practice, a message broker is a service that transforms network errors…
Re: Ask HN: Are Service Meshes an Antipattern?
#5Because every system that needs to return a response within N ms (which is pretty much every app, service, API call, etc) ends up being implemented with synchronous calls, with messaging only used for truly offline bits. There's a good writeup of why here: https://programmingisterrible.com/post/162346490883/how-do-y... , with this great quote: "In practice, a message broker is a service that transforms network errors…
Are we then paying the price in latency and added hops for development agility? I would have guessed a user request would never be subjected to that. With a mesh, don't you get even more latency because of the sidecar? The link you provided looks interesting; will give it a read, thanks!
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
Re: Ask HN: Are Service Meshes an Antipattern?
#6Earlier quoted context omitted.
Are we then paying the price in latency and added hops for development agility? I would have guessed a user request would never be subjected to that. With a mesh, don't you get even more latency because of the sidecar? The link you provided looks interesting; will give it a read, thanks!
Yes, you pay a latency and resource cost to have the service mesh features decoupled from the application code. Same with any abstraction e.g. containers or Kubernetes. 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…