In today’s world, application development is mostly about application reuse and integration than green field application development. Given the volume of IT assets an organization has and the amount of those exposed as services or APIs to be reused over the past decade or so, thanks to SOA and Web Services initiatives, integration is a very common case.
Therefore, whenever you want to consider any project, you need to think about the integration and reuse of services and APIs with the ESB pattern. Thus, the realities of modern day application development would be that:
- You are integrating three or more services
- You will have to leave provision for incremental plugging in of applications in the future
- You will have to support more than one message format or media type
- You will have to connect and consume services using multiple communication protocols
- You will need to deal with in-flight message modifications and pick destinations to route messages based on content
- You will need to expose your application as services or APIs to be consumed by other applications
Hence, you need an ESB because an ESB comes packed with features to cater to these requirements. ESB provides you with a solution development model that ensures your development team adheres to ESB best practices when realizing your solution.