Amazon claims their Kinesis streaming product guarantees record ordering.
It provides ordering of records, as well as the ability to read and/or repla
It seems this is not possible to achieve. Ordering is guaranteed on a shard level, but not across the all stream.
https://brandur.org/kinesis-order
So back to our original question: how can we guarantee that all records are consumed in the same order in which they’re produced? The answer is that we can’t, but that we shouldn’t let that unfortunate reality bother us too much. Once we’ve scaled our stream to multiple shards, there’s no mechanism that we can use to guarantee that records are consumed in order across the whole stream; only within a single shard.