This document discusses using Apache Kafka to enable communication between microservices at scale. It begins by describing how monolithic applications can be broken into independent microservices. Next, it covers common communication patterns for microservices, including shared databases, separate databases per service, and asynchronous messaging. The bulk of the document then focuses on Apache Kafka, describing it as a distributed publish-subscribe messaging system that is fast, scalable and durable. It covers how Kafka works, including its use of a commit log distributed across brokers, and common usage patterns such as event sourcing, change data capture, and Kafka Connect. Overall, the document promotes using Kafka as the backbone for event-driven communication between microservices.