You typically do have a single consumer per partition (in a single consumer group — so in the group of consumers jointly working on some task). However, you need first to get “related” events into the same partition — that’s where a Partitioner comes in.

So if you have 10 partitions, and you’d like all events relating to user with id 42 being written in the same partition, your partitioner would probably somehow use the id to generate the partition number.

Scala software engineer, Functional Programming enthusiast, SoftwareMill co-founder

Scala software engineer, Functional Programming enthusiast, SoftwareMill co-founder