Aglet

How to prioritize out-of-order events by state harm and reach

Prioritizing out-of-order events depends on whether older information can change a current decision. Consider the aggregate or workflow affected, how many event types share the path, whether ordering is a documented requirement, and whether replay can repair state without repeating effects.

Decide where the work belongs

  1. Rank the state transition at risk

    Name the newer state that can be overwritten, delayed, or rejected and the action people take from it. Separate harmless display order from a durable transition or notification. Give higher priority to aggregates where an older event produces a misleading current state.

  2. Group reach by aggregate and path

    Compare event type, aggregate identity, source sequence, consumer, concurrency, retry, route, release, and final-state evidence. Distinguish confirmed harmful permutations from sequences where order is irrelevant. A narrow but durable overwrite may outrank broad harmless arrival variation.

  3. Choose a bounded ordering slice

    Select immediate investigation, a version or sequencing improvement, or collection of one missing permutation trace. State what changes priority, such as an irreversible side effect or unsafe replay. Keep a global ordering redesign separate from the first aggregate contract that is violated.

What to carry forward

Produce a queue decision tied to state harm, aggregate reach, ordering requirements, replay safety, and evidence quality. Include whether the event contract explicitly requires order. The next engineer should have one related sequence to permute and a clear reason its work matters.

Keep the decision with the work.

Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.

Create an account See the product workflow