In the Kafka documentation:
Kafka handles this differently. Our topic is divided into a set of totally ordered partitions, each of which is consumed by one consumer at any given time. This means that the position of consumer in each partition is just a single integer, the offset of the next message to consume. This makes the state about what has been consumed very small, just one number for each partition. This state can be periodically checkpointed. This makes the equivalent of message acknowledgements very cheap.
Yet, following their quick start guide in that same document, I was easily able to:
- Create a topic with a single partition
- Start a console-producer
- Push a few messages
- Start a consumer to consume
--from-beginning - Start another consumer
--from-beginning
And have both consumers successfully consume from the same partition.
But this seems at odds with the documentation above?