ADR 0011: Progress event architecture#
Context#
Network bytes, batch completion, retries, failures, cancellation, terminals, and notebooks need one truthful model without coupling rendering to business logic.
Decision#
Emit typed immutable events through a reporter protocol with callback, terminal, and null adapters.
Alternatives#
Printing in transport and callback-only byte counters were considered.
Consequences#
Applications can render or record progress consistently across sync and async paths.
Rejected shortcuts#
Invented percentages for unknown lengths and retry-silent progress are rejected.
Operational implications#
Known transfers reach exactly 100%; batches count completed items and cancellation is explicit.