Integration flows are for integrating different systems by matching protocols / message formats, transforming messages, routing messages to different destinations based on message data, performing simple service compositions, etc. An example would be a system A wants to send a JSON/REST message to system B, which can only receive SOAP/WS messages. Further, system B needs some addition information with the request that has to be fetched from a database. Such integration flow can be implemented in an ESB, so that system A can just invoke an endpoint available in the ESB without worrying about matching message formats or fetching additional data.
Business processes are for a different purpose, that is to capture day-to-day operations of an organization. An example would be the process for purchasing equipment for a particular division of an organization. Multiple steps may be involved in this process, such as an employee filling a procurement form, approval by division head, approval by higher management if the value exceeds certain amount, selection of suppliers, obtaining quotes, buying the requested item, notifying interested parties, etc. Things may not always follow the happy path in such a process.. for example manager may not approve the request. Therefore, many conditional flows have to be modeled. For some exceptional flows, we may need to revert previous operations.. for example if a order is canceled, we have to revert fund allocations. Another important thing to note is the duration of running this process. It involves multiple human interactions (e.g. manager approval), which can take days to complete. Therefore, the whole process may take weeks or months to complete. Such flows have to be implemented as business processes and deployed in Business Process Servers (BPS).
This can be summarized as below, which helps in selecting the right technology for the right purpose:
|Business flows||Integration flows|
|Focus on high level end user flows||Focus on low level system interactions|
|Long running (days, months, years)||Short running (milli seconds, seconds)|
|Involves humans and systems||Involves systems|
|Complex flows (escalations, compensations, loops)||Relatively simple flows|
|Requires persistence||Stateless flows|
|Relatively high response time||Relatively low response time|
|Usually implemented in BPS||usually implemented in ESB|