Message integration

Data exchange is done through data contracts, a service and event handlers for export and a class for import. There are support for four different types of endpoints.

Azure service bus

Integration using Azure service bus can be done using either a Query or a Topic/Subscription.

- Queue

A message is delivered or read. Once the message is delivered or read the process is complete.

- Azure service bus Topic

A message is delivered to a Topic or read from a Subscription. Once the message is delivered or read the process is complete.

API Management and xAPI key

These are both direct integrations where an API is called or a web service is consumed either through Azure API Management or xAPI key. The response is received and handled before the process is complete. Basically a send endpoint is used for POST operations and receive endpoint for GET operations.

Sending data

Event handlers have been added. These are trigged by C(R)UD operations performed by the end users but will only stack a message if there is one or more active endpoints for the service and that one of the fields in the data contract have changed.

Once a message has been stacked, the batch framework takes over and builds the message using the corresponding data contract. The message is delivered as JSON (or XML) to the defined endpoint.

The send batch job can be scheduled to run as often as every minute and have scaling possibilities both in number of threads and retry mechanisms.

Receiving data

A batch job fetches data from the endpoints and transforms the JSON (or XML) to data contracts and imports the data through the endpoints service. Similar to the send batch, this job should also be scheduled to run every minute. The same scaling applies for this job as well.

Some services have been created, but this is a framework where you can build or extend existing integrations.

Implementing a API will require customization, but the time will drastically be reduce because of the framework.