Aglet

Investigate batch progress projections with a fixed item ledger

Investigation should explain how a known item ledger becomes the progress state a reader sees. Use a fixed batch whose records include active, completed, failed, and excluded outcomes. Change one boundary at a time, preserving event order and projection timestamps, so the brief identifies a faulty aggregation or handoff rather than a general reporting suspicion.

Build a useful investigation brief

  1. Create an outcome matrix

    Prepare a sanitized batch with known records in each supported state, including an item excluded before claim. Write the expected denominator and counts next to the fixture. Include one item whose completion occurs after the first projection so a stale refresh is observable.

  2. Trace aggregation and projection writes

    Follow item events into the aggregate calculation, persistence of the projection, and the read used by the screen. Capture the input set and update time at every boundary. Check whether retry attempts, excluded records, or late events are counted under a different identity.

  3. Test one boundary change

    Hold the ledger constant while forcing a projection refresh after each terminal transition, then repeat with a delayed refresh. Compare the aggregate to the ledger before changing rendering. If the aggregate is correct but the screen is old, narrow the brief to read freshness.

What to carry forward

Deliver a brief naming the smallest failing fixture, expected versus observed counts, first divergent boundary, and projection age. Include one tested comparison and unresolved cases such as concurrent updates. A code change is ready to scope only when selection, aggregation, and read freshness have distinct evidence.

Technical background: Celery documentation.

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