Apache Kafka is a publish-subscribe messaging system developed by Apache written in Scala. It is a distributed, partitioned and replicated log service.


Messages in Kafka organized in a stream of messages - a topic in Kafka terms. A topic can be something like the table-name of a source database table that is distributed with Kafka. A topic is made redundant of several servers (brokers in Kafka terms) of the Kafka cluster with partitions.

Producers and Consumers

Producers are apps that use the Kafka API to write messages to topics. Consumers read messages from the topics.