Establish what is happening
Capture depth, age, and work class
Record queue or stream name, work class, arrival count, completion count, oldest item age, recent item age, retry count, consumer availability, and customer-visible action. Separate normal, delayed, failed, and retrying work. Use public or stable identifiers and redact payload content.
Compare normal flow with backlog flow
Align a healthy period with the backlog period and compare arrivals, service time, consumer concurrency, dependency waits, failures, retries, and completion ordering. Identify whether one work class grows while others drain. Mark gaps in queue age or service measurements instead of assuming capacity.
Check isolation and recovery state
Inspect whether a repeatedly failing or slow item blocks unrelated work, whether new arrivals are admitted, and whether completed work reaches its visible state. Observe after arrivals slow: record drain rate, oldest age, retries, and any lost or duplicated outcomes.
What to carry forward
Return a scope statement naming affected work class, first flow divergence, oldest age, customer action, and isolation or recovery behavior. Route next work to producers, consumers, dependencies, retries, or queue isolation. Stop when one bounded flow comparison identifies the next evidence step.
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