Common Integration Approaches

Common Integration approaches

You can see these approaches used.

File System 

One application will write the data needed by others to file system. Consuming systems will read the data from file and process accordingly.
This is probably oldest pattern used for sharing data between systems. This needs lot of maintenance. Both applications need to come to an agreement on when data will be written, when it will be consumed and who will manage the files. There is always a possibility of data corruption when it is in the file system. Human intervention is needed when there is a problem with the data. There is also a possibility of someone editing the file and change data. 

Common Database

Two applications share a common database. Or application will write to a common database or data warehouse. Data is read from the common database by other apps.
This pattern is difficult to maintain. This can cater to few systems. The moment you add more applications complexity increases. You are sharing more data than needed and you are slowly loosing control of data. Unless rights are configured correctly there is a possibility of data corruption.

Web service/ API 

Consuming application will call the web service or API exposed. This approach is comparatively better. Application can control what is being exposed. Data cannot be manipulated.
One issue with this approach is source system needs to take lot more load. Source system needs to add new API's for downstream systems.

Messages

One application writes the data needed by other applications into a Que system (or Enterprise service bus). Other applications consume these. Maintaining a que or service bus is expensive. Typically business need for having a message system are different than just data integration.
If the business requires an enterprise service bus then it is a good approach for integrating applications. You should use it only for critical needs where it is a must.

Comments

Popular posts from this blog

ChatGPT for cavemen

Greedy computing with API

Event driven architecture for micro services