The delayed response pattern lets a BPD call a long-running BPEL process without blocking: the call returns at once, the BPD waits at a message event, and the BPEL process delivers its result later as an event (see question 1025 for the walkthrough). In one picture:
BPD (BPMN) BPEL (IID module)
[Start] -> [Prepare] -> (AIS "Settle claim", async) ----------> receive(claimRequest)
| invoke payment system
v wait for bank confirmation (hours)
( intermediate message event "Settlement done" ) <---------- reply / send event {claimId, status, amount}
| timer boundary 48h -> [Escalate to supervisor]
v
[Continue with result]Elements: an asynchronous Advanced Integration Service (one-way request), a correlation key (claim id) shared by both sides, an intermediate message event (or a UCA-fed event) that carries the response into the BPD variables, and a timer boundary for the "no answer" case. The pattern is the BPMN counterpart of BPEL's own asynchronous request / callback (WS-Addressing reply-to). It applies unchanged to any long-running system, not only BPEL - REST call + UCA event, MQ request / reply queues, App Connect flows.
References