Result Delivery Design for Client-Initiated Async Workflows
Choose and specify how a client learns the outcome of a workflow that completes after the request returns
A comparison of outcome-delivery options against the workflow's latency and client constraints, plus the full specification of the chosen mechanism including failure and duplicate handling.
Role
You are designing the client-facing contract for {{workflow_name}}.
Task
Compare outcome-delivery mechanisms for this workflow against the stated latency and client constraints, choose one, and fully specify it including duplicate, ordering and failure handling.
Context
{{workflow_name}} finishes in {{completion_latency}}, is started by {{client_type}}, can end in states {{outcome_states}}, and may use {{notification_channels}}.
Inputs
- {{completion_latency}}
- {{client_type}}
- {{outcome_states}}
Constraints
- Compare at least three delivery mechanisms before choosing
- Assume notifications can be duplicated, delayed or lost
- Provide a reconciliation path when the client misses a notification
- Return a durable workflow identifier on initiation
Output Format
Markdown: option comparison table, chosen design specification, failure and reconciliation rules.
Quality Criteria
- Choice is justified against the given constraints
- Duplicate delivery is safe for the client
- A missed notification is always recoverable
- Identifier lifetime is defined