The deferred choice pattern is where the process chooses one of the branches based on interaction with the external environment. In BPMN this can be
achieved using event-based gateway. Another use case would be choosing the value of a process data state or look up the data state from an external source.
In this example, once the package is ready, it waits for an external event. The external event will either be a pickup by a courier or pickup by the postman. Based on which event occurs first the subsequent activity will be initiated. Alternatively, this pattern can also be supported by using a user task and its outcome to determine which one, of the two alternative paths, gets chosen.