A topic is split into partitions, and each partition is itself an ordered log. Partitions are what give Kafka its scale. If a topic has 12 partitions, up to 12 consumers in one group can read from it in parallel, one per partition. Add partitions and you add throughput.
Ordering is guaranteed inside a single partition but not across the whole topic. Records in partition 0 are read in the exact order they were written, but there is no global order spanning partition 0, 1, and 2. This trade-off is the price of parallelism.
You control which partition a record lands in through its key. Kafka hashes the key and uses the result to pick a partition, so every record with the same key goes to the same partition. If you key by customer ID, all events for one customer stay in order. If you send records with no key, Kafka spreads them across partitions evenly and you give up per-key ordering.
One rule trips people up: you can increase a topic's partition count later, but you cannot decrease it, and adding partitions changes the key-to-partition mapping for new records. Pick a partition count with growth in mind.