In pipeline processing, composite services send messages to atomic services sequentially. It waits for the previous service to return success before calling the next service. If anyone service fails, then the composite service sends the compensating transaction to previously successful services. This is similar to the Process Manager pattern in the EIP: