Messages are consumed in order from each topic partition. You can make sure messages end up in the same topic partition by making them have the same key, or by explicitly mapping them to partitions yourself when producing them.
To parallelize consumption, you use a consumer group. Each time you create a consumer, you can specify the group it should be in and work is automatically balanced across all the members of the group. This is done on a per topic-partition basis, so when the consumer group membership is stable, a single consumer will see all the messages from a given topic partition in order. So assuming you have a key you can assign to organize them, you should be able to use many topic partitions and consumers. On Tue, May 26, 2015 at 9:51 AM, Kumar Jayanti <kumar.jaya...@gmail.com> wrote: > Our system has a specific message type that requires total ordering. > Message-1 should be consumed (acted upon) before Message-2 is consumed. > However since we have a cluster of consumer nodes we would like to > round-robin the processing of messages if possible to different nodes while > maintaining the ordering. Is this possible ? > > From my reading it appears we have to pin it down to a Topic with Single > Partition with Single Consumer Process but i may be wrong ?. > -- Thanks, Ewen