
For processes where the rates of messages being received may exceed the ability of the integration to process and update downstream systems, or where retry mechanisms are required, including the service bus in the implementation provides a significant level of flexibility and improves reliability
In the below example, this integration pattern is used to solve a booking problem for a charter airline operator. Unlike normal airline operations, where individual passengers book and purchase a ticket on the flight, a charter operation provides a number of seats to the client. The client then chooses who is going to be onboard.
Prior to departure, the airline needs to know the final passenger numbers and who is going to be onboard the aircraft.
Often this is done by providing a passenger list to the airline before departure.
In this example, the customer is a mine site running a camp management logistics software package.
The customer plans the travel for each employee based on their roster and allocates them to a particular flight for transport to and from the site.
The integration is implemented to synchronise the passengers allocated to the flight from the camp logisitics software to the airline reservations system.

The integration is built in 3 parts.
A booking collector that interacts with the logistics software to retrieve any changes (add / cancel) to the passengers on the flight.
A booking agent that creates a booking for for the passenger on the flight.
And an updater that sends the passenger booking reference back to the logistics company, or in the event that there is a problem, a suitably descriptive error message.
All of the activities are logged to an azure blob storage account to allow for detailed troubleshooting in the event of an integration failure.
In addition to reactive monitoring, a proactive monitoring script runs against the log files and looks for specific error patterns that are known to occur (e.g. when a flight time has changed in one system but not the other, or when the number of available seats for the flight does not match in both systems).
These alerts are pushed to the team managing the operation via teams and escalated via email.
In this example, the source system provided a RESTful API and the airline booking system utilised a SOAP interface. The message data structure was largely based on the source system attributes and format to reduce re-formatting operations.

