Why architecture matters here
Progress fails when servers spam updates (too many), forget tokens (no correlation), or ignore cancellation. Architecture matters because user experience + backpressure combine.
Advertisement
The architecture: every piece explained
The top strip is the notification path. Long operation server-side. Progress token from client _meta. notifications/progress. Client UI shows progress.
The middle row is control. Cancellation client requests. notifications/cancelled ack. Message frequency throttled. Metadata — progress + total + message.
The lower rows are ops. Timeouts. Observability. Ops — UX + backpressure + audit.
Advertisement
End-to-end flow
End-to-end: client requests a large search. Server begins; every ~1 sec sends progress with current/total. UI shows bar. User cancels; server acks + stops. Total duration logged.