The bonding tables are used to manage the state of the connection between the two records in each system.
A bond is a record that joins an integration to an internal process record (i.e. a ticket) by storing the internal and external system references together, along with the integration and other bond specific data. It also stores a commentary of the full history of the integration actions, making it very easy to see what has happened across the lifetime of the bond.
- Bond has one-to-many relationships with Bonded Attachment and Transaction.
- Bond has a many-to-one relationship with internal process records (i.e. tickets), unique by integration.
- Bond has a one-to-one relationship with external process records (i.e. vendor ticket).
Bonded Attachment records track the synchronisation status of attachments on the record that has been bonded. Bonded Attachment has a many-to-one relationship with Bond.
The communication tables facilitate the transportation, extraction, transformation and loading of data communications. They are used to simplify development and debugging, aid in operations management, and provide full insight into the details of every data exchange.
A Transaction is essentially a container used to group together the stages and requests created for single message exchange. Every inbound or outbound message belongs to a Transaction and this includes response and receipt messages.
- Transaction has one-to-many relationships with HTTP Request and Stage.
- Transaction has a many-to-one relationship with Bond.
The Stage table allows data to be extracted and stored before it is processed. Although a requirement for asynchronous messaging, this separation makes it very easy to develop and maintain the integrations that the application supports.
- Stage is configured so it can be extended for each process.
- Stage has a many-to-one relationship with Transaction.
HTTP Requests are the lowest level of communication, containing the raw data that is exchanged between systems.
- HTTP Request has a many-to-one relationship with Transaction.
The Process record allows integrations to be aligned to particular process. Many processes can be made available for integrations, and many integrations can belong to each process.
Process records define the top level configuration that all integrations using this process will follow. A typical process to be made available for integration would be Incident.
- Process has a one-to-many relationship with Integration.
An Integration acts as the top level container for configuring a process to be used by a single external or internal supplier. All the options specific to the integration are set on this record.
- An integration is only active when a connection is active.
- Integration has one-to-many relationships with Bond, Connection, HTTP Request, Message, Stage, and Transaction.
- Integration has a many-to-one relationship with Process.
Connection records allow many endpoint access configurations to be set up for a single integration. This makes managing access for different instances very easy, such as development, test and production.
Only one Connection can be made active at any time. Making one Connection active will automatically enable the Integration and disable all the other Connections. Disabling a connection will disable the Integration.
- Connection has a one-to-many relationship with HTTP Request.
- Connection has a many-to-one relationship with Integration.
The Unifi application uses a message centric architecture, meaning that every outbound/inbound request is configured as a single Message. A Message might be a create or update request, a receipt or a response. All Messages will send/receive a response Message and asynchronous Messages can also be configured to send/receive a receipt.
- Message has one-to-many relationships with HTTP Request, Message, Message Script, Stage and Transaction.
- Message has a many-to-one relationship with Integration.
Data extraction, transformation and loading is handled by the Message Scripts. Each message can have custom scripts added that facilitate one of the following scenarios:
- Payload to Stage (Inbound)
- Stage to Process (Inbound)
- Process to Stage (Outbound)
Stage to Request (Outbound)
- Message Script has a many-to-one relationship with Message.