Kafka topics
A topic in Kafka is a named, append-only log of messages — like a database table, but you only ever insert and read, never update or delete individual rows. Producers write to a topic, consumers read from it, and the topic holds messages for as long as the retention policy says (hours, days, or forever). A topic is also the unit of scaling: it's split into partitions, which is how Kafka parallelises. Topic names are the contract between services — changing a topic's schema is a coordinated migration, not a refactor. The conventions that matter in production: naming (<domain>.<entity>.<event> like orders.order.created), retention (cost vs. replay window), number of partitions (hard to change later — overprovision slightly), schema (use Avro/Protobuf with a schema registry, not raw JSON, once the stakes matter).