Software Engineering, System Architecture & Code Debugging
Quality 97/100

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.

Template

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
api-design
api_design
async
intermediate
polling
webhooks
workflow