@Igor Morozov When a producer publishes to a partitioned topic, it internally creates a producer on every single partition topic (under the covers). When a message is published, the partition it is routed to is determined by the messages key. All messages with the same key are batched together on the producer and sent to the broker where they are stored. This ensures per-key message order on the producer side.