PROTOTYPE · THROWAWAY
How should the child-before-root problem read?
The same trace is shown as an incident, a delivery schedule, and a storage failure. Use ← / → or the bottom bar.
A · EVENT RECORD
Incident rail
The reader follows one line of time. Redis is the pause between a child arriving and the root deciding its trace timestamp.
- Child span finishes
It carries its own timestamp.
- Child reaches the aggregator
The root has not arrived.
- Redis misses the root timestamp
The child enters
trace:pending:{id}. - Root reaches the aggregator
Redis stores its timestamp for 24 hours.
- Pending child is rewritten and published
Both aggregate rows now share one trace time.
B · DELIVERY ORDER
Delivery lanes
Separate lanes show why event time and arrival time are different facts.
TIME →T0T1T2T3T4
Childfinishesarrivespending
Rootarrivestimestamp stored
Redispending listflush
C · STORAGE CONSEQUENCE
Partition drift
Two date bands make the cost visible: without coordination, one trace crosses a ClickHouse monthly partition boundary.
JULYAUGUST
Without Redisroot · July 31child · Aug 1
With root timestamproot + child · July 31