# Topics, Partitions, Offsets and Records — Apache Kafka: Event Streaming from Basics to Production

Source: https://www.geekswithgeeks.com/en/kafka/kb-core-concepts

> Understand how a topic is split into ordered partitions and how offsets identify records.

## The anatomy of the log

A **record** (message) has an optional **key**, a **value**, a **timestamp** and optional **headers**. A **topic** is split into **partitions**; each partition is an **ordered, append-only sequence** of records, and every record gets a sequential number in its partition called its **offset**. **Ordering is guaranteed only within a partition**, not across the whole topic. Partitions are the unit of parallelism: more partitions let more consumers read in parallel and spread data across brokers.

## The log picture

Each partition grows at the end. Offsets never change, and a consumer remembers the next offset it will read.

```text
topic "orders" (3 partitions)

partition 0:  [0][1][2][3][4]  -> next write goes to offset 5
partition 1:  [0][1][2]
partition 2:  [0][1][2][3]

consumer A reads partition 0 at offset 3; consumer B reads partition 1 at offset 1
Ordering is guaranteed inside each partition only.
```

## Offsets are per partition

Offset 7 in partition 0 and offset 7 in partition 1 are different records. Always think of a position as the pair (partition, offset).

**Quiz:** Where is record ordering guaranteed?

- [x] Within a single partition
- [ ] Across all partitions of a topic
- [ ] Across all topics
- [ ] Nowhere

*Answer:* Within a single partition. Kafka orders records per partition; cross-partition order is not guaranteed.
