An agent trace is usually written as a sequence of events because append-only data is simple to produce: span_started span_started span_ended span_started span_ended span_ended Developers do not want to debug that sequence directly. They want to see the causal structure: research_agent ├─ search_web ├─ query_database ├─ call_finance_api │ ├─ attempt_1 timeout │ └─ attempt_2 ok └─ summarize_results The event stream is optimized for writing. ...