Programming · System Design

How does Kafka decouple services?

Throughout my career, I've heard over and over again, “Kafka decouples services”. Almost like a mantra, without hearing anything about or knowing how it actually helps in decoupling. I've been guilty of this too, telling my mentee exactly this, without fully knowing the reasons for this. While reading the incredible book Foundations of Scalable Systems, this became clear, and in this post, I'll go over the reasons for why Kafka decouples services. (because yes, it indeed does)