// This module is included in:
//
// overview/assembly-kafka-concepts.adoc

[id="kafka-concepts-key_{context}"]
= How Kafka operates as a message broker

[role="_abstract"]
To maximise your experience of using Strimzi, you need to understand how Kafka operates as a message broker.

* A Kafka cluster comprises multiple nodes.
* Nodes operating as brokers contain topics that receive and store data.
* Topics are split by partitions, where the data is written.
* Partitions are replicated across brokers for fault tolerance.

.Kafka brokers and topics

image:overview/kafka-concepts-key-concepts.png[Kafka brokers and topics inside a Kafka cluster showing the partition leader of each topic]

Broker:: A broker orchestrates the storage and passing of messages.
Topic:: A topic provides a destination for the storage of data.
Each topic is split into one or more partitions.
Cluster:: A group of broker instances.
Partition:: The number of topic partitions is defined by a topic _partition count_.
Partition leader:: A partition leader handles all producer requests for a topic.
Partition follower:: A partition follower replicates the partition data of a partition leader, optionally handling consumer requests.
+
Topics use a _replication factor_ to configure the number of replicas of each partition within the cluster.
A topic comprises at least one partition.
+
An _in-sync_ replica has the same number of messages as the leader.
Configuration defines how many replicas must be in-sync to be able to produce messages, ensuring that a message is committed only after it has been successfully copied to the replica partition.
In this way, if the leader fails the message is not lost.
+
In the _Kafka brokers and topics_ diagram, we can see each numbered partition has a leader and two followers in replicated topics.
