Protocol Revision: draft
Progress Flow
When a party wants to receive progress updates for a request, it includes aprogressToken in the request metadata.
- Progress tokens MUST be a string or integer value
- Progress tokens can be chosen by the sender using any means, but MUST be unique across all active requests.
- The original progress token
- The current progress value so far
- An optional “total” value
- An optional “message” value
- The progressvalue MUST increase with each notification, even if the total is unknown.
- The progressand thetotalvalues MAY be floating point.
- The messagefield SHOULD provide relevant human readable progress information.
Behavior Requirements
- 
Progress notifications MUST only reference tokens that:
- Were provided in an active request
- Are associated with an in-progress operation
 
- 
Receivers of progress requests MAY:
- Choose not to send any progress notifications
- Send notifications at whatever frequency they deem appropriate
- Omit the total value if unknown
 
Implementation Notes
- Senders and receivers SHOULD track active progress tokens
- Both parties SHOULD implement rate limiting to prevent flooding
- Progress notifications MUST stop after completion