What comes to your mind when you hear the term “Distributed Messaging”?
Well, not even that, let’s paraphrase: What are your expectations concerning the messaging in distributed systems? I suppose that “reliability” will occupy one of the top positions in the list of answers.
What sense do we put into the reliability? In most cases, we just want to be assured that our messages will be eventually delivered without loss and that seems pretty reasonable in terms of architecture.
There are also cases when reliability is not considerable and rather is negligible. The illustration here can be a clickstream that is generated by a user during a web session. Fundamentally it may be fully acceptable to decrease reliability guarantees and lose some messages in exchange for performance. As it usually happens in the distributed world there are many trade-offs are available, and the most common is “performance versus guarantees of delivery semantics”.
In this video, we will try to figure out how to get the most of Apache Kafka, make it bullet-proof against a variety of failures, and push its reliability and durability through the roof.