Resources - White Papers
7 Key Features in an Enterprise-Class Integration Solution
Customers, today, want quality product, faster delivery, and seamless experience throughout their journey; and therefore, organizations are doing everything possible to accelerate their time-to-market without compromising on their product quality. The first step towards this endeavor is the creation of a unified ecosystem by bringing all tools and teams together – and getting rid of time-consuming manual collaboration process, which leads to delays and sub-optimal decisions because teams do not have the full context. If you are reading this white paper, most likely, you are already aware of the struggles of operating in a disconnected ecosystem and looking for ways to integrate the heterogenous elements in your ecosystem. It is also possible that you, already, have an integration setup that is unable to help you achieve the desired level of collaboration or productivity, and you are trying to figure out what’s gone wrong with your choice of the integration solution.As integration is a relatively new space and organizations have only recently started to realize its importance, there is a great deal of confusion about what to expect from a good enterprise-class integration solution. In this whitepaper, we will discuss the features of a good integration solution in detail.
Features of a Good Integration Solution: Reliability, Consistency, and ScalabilityAn integration solution plays a huge role in keeping all the tools and teams in the ecosystem together – but it runs in the background, has no interaction with people and shouldn’t require any change in the end user behaviour. Therefore, the integration solution should be reliable and consistent and run successfully without much supervision or monitoring. Another quality that is a must in a good integration solution is its ability to scale for future requirements. While your current requirement might be to establish a bi-directional integration between Azure DevOps and Jira to sync defects from one system to another in real-time, in future, with more and more tools getting added to your ecosystem, you might need the integration solution to integrate thousands of projects and entities from hundreds of other end systems. To determine whether the integration solution is reliable, consistent, and scalable, you should evaluate the solution on the following parameters:
ArchitectureThe architecture of the solution should be such that it supports scalability and data consistency: The architecture must support integration of the solution with variety of end systems, such as Application Lifecycle Management (ALM), Customer Relationship Management (CRM), Source Code Management (SCM), IT Service Management (ITSM), and so on.
- It should allow the solution to support vast variety of entities and customize the sync flow, if required.
- It should support configuration, admin, and run time performance.
- It should be easy to support future changes in the integrated systems.
Consistency ModelThe consistency model on which the integration solution is designed determines the kind of consistency it can provide while synchronizing the data between multiple systems. Some common consistency models are:
- Always Consistent model: This model ensures that the data between two systems is always in consistent state.
- Eventual Consistency model: This model ensures that the data between two systems will eventually be in a consistent state without manual interference.
- Best Effort Consistency model: This model ensures that the integration server will do its best to keep data between two systems consistent, but can’t guarantee consistency in case of failures.
Reliability and Recovery MechanismOne of the fundamental challenges with integration solution is that the reliability and recovery mechanism needs to be built-in every aspect of the solution. The reliability and recovery mechanism in a good integration solution must ensure that:
- In case a change is not completed due to connection loss, it should be completed without any manual intervention when the connection is restored.
- In case of any failure during integration, the integration should be automatically retried without causing any data loss.
- If the integration server goes down during syncing an event and someone changes the same entity in target system at the same time, the integration server should be smart enough not to overwrite the changes.