3 ms·
Re. "fat client" libraries: > Sure, it only worked for JVM languages, and it had a programming model that you had to build your whole app around, but the opera
by solatic 7y ago
Re. "fat client" libraries:
> Sure, it only worked for JVM languages, and it had a programming model that you had to build your whole app around, but the operational features it provided were almost exactly those of the service mesh.
The thing is, all of our microservices communicate with each other using Kafka. Envoy has an issue open for Kafka protocol support [1], but it's a fundamentally difficult issue because adopting Kafka forces you to build out "fat client" code and building a network intercept that can work with pre-existing Kafka client code is non-trivial. On observability, Kafka produces its own metrics.
Granted, Kafka doesn't offer the same level of control. But Kafka does offer incredible request durability guarantees. We don't have "outages" - we have increased processing latency, and Istio/Envoy and other service meshes can't offer that because they do not replicate and persist network requests to disk.
[1] https://github.com/envoyproxy/envoy/issues/2852 https://github.com/envoyproxy/envoy/issues/2852