it seems unlikely that you make your software faster or more reliable by adding more hops
it seems unlikely that you make your software faster or more reliable by adding more hops
We could test out Kong, Consul, Fabio, and forget the event-driven callbacks; We could use Route 53 and ELBs; or we could just use Linkerd to drive this and get some pooling features and monitoring features as well.
I think of it as a layer both on top of the services and also a pool that the services swim around in and it ensures that there's one place to manage traffic, the services don't have to care how to do service discovery for other services and it's all being load balanced at a reasonable price.
monitoring / "circuit breakers" would probably require a proxy I guess
you can use existing tools to introspect state (e.g. dig), and with sufficient logging it's perfectly debuggable
oxymoron?
By sending specific headers (and having your application forward them) one can have per request routing[1] and/or tracing[2].
[1] https://blog.buoyant.io/2016/11/04/a-service-mesh-for-kubern...
[2] https://blog.buoyant.io/2017/03/14/a-service-mesh-for-kubern...