Master and Detail processes
By defining Master and Detail processes, we are able to coordinate a one-to-many relationship between a single Master process and multiple Detail processes. This pattern is useful in asynchronous communication, when a Master process invokes one or many Detail processes and then continues with processing. However, at a certain stage it needs to stop and wait to receive a signal from Detail processes to know whether all Detail processes have reached a certain stage. After receiving a signal from all Detail processes, the Master process can continue with processing. This means that the Master process does not need to wait for all Detail processes to finish (Detail process can send a signal to Master process before it actually finishes with its execution). This coordination is especially useful when the Master process invokes one-way operation of the detail and the Detail process does not return any message. A common use case is when a Master process delegates the...