Skip to main content
A batch mapped an operation for a lower block than one already sequenced. Operations take their numbers in the order they are mapped, and consumers read a contiguous run reaching block N+1 as proof that block N is complete — a backwards step makes that reading wrong. Fix — emit drafts in block order. A fork’s rewind is not a backwards step: the target resets the check when it resolves one. Set sequenceBarrier: false if no consumer relies on block boundaries. Note that the check walks the batch in sequencing order, which is route by route rather than block by block. A second route on the same topic therefore restarts at the batch’s first block and lands here on any batch spanning more than one block, with no ordering the mapper can supply to avoid it — the barrier admits one multi-block route per producer. Merge the streams into one map, or turn the barrier off.