I started jump to Enterprise Integration world, when I maintain a hospital information system. As any other systems, it is connected with various systems: administration, finance, inventory, laboratory, queuing system, etc. Moreover it also connected with various devices: registration (barcode, swipe card), examination, radiology devices, etc.
At that time, our system was quite stable and used by major customers. Integration among systems was handled by certain service. Data transformation, queuing, transfer, and exception strategies… all were written in custom Java code. Yes, it was point-to-point integration: quick, and reliable. Although, most of us agree that it’s quite hard for maintenance and modification.
Therefore, when we looked at our long term plan, we realized that there were many things to be considered. That’s why we need a new approach regarding the integration plan. It’s not only concerning maintainability, but also agility. The system is used by many customers with different requirement and environment. There are also many possibilities to extend the system for supporting new services. Since the technologies out there keep evolving.
In accordance with that, we conducted several researches to assess as many as possible solutions. We tried to improve existing point-to-point service, and end up with a complicated solution. We applied back-end integration through common data integration system, also did not give better result. However, we still keep this approach for data migration purpose.
Eventually we implemented Service Oriented Architecture as our integration foundation. And then, this decision was continued with integration framework selection. After comparing some ESB tools and frameworks we decided to choose MuleSoft with its Anypoint Platform. Which give us more benefits:
- Unified connectivity We can connect our system with any other systems or devices anywhere, on-premises or in the cloud.
- Low friction Integration application can be build using developer-friendly tools and open standards. Give more flexibility for our team members which consist of multi skill developers (Java, .Net, Python, etc.)
- Hybrid Ready Develop project in one design and platform, then we can deploy it anywhere.
No fear of change request!
Yogyakarta, May 30, 2016