We often need to ensure that messages are processed in strict order, in this blog post I explain a pattern that enables this to be enforced using Oracle Integration. The pattern also deals with the case where we need to limit the concurrency of calls to an endpoint system.
This article was co-written with Glenn Mi & David Craft
The basic problem is that I may issue a stream of requests that must be executed in order, for example create account, update account address, update account contacts. The latter two activities cannot occur until the first has completed.
Before we can sequence messages we need to know the order in which they should be processed, so there must be some sort of sequencing ID which we can use. This could be a timestamp or it could be an actual sequence ID. If we are using timestamps then the closer to the message origin that the timestamp is applied the better, for example if we take the timestamp from when it arrives in Oracle Integration then a network delay may already have caused our messages to be out of order.
Typically we don't want all messages to be in the same ordered sequence. In our account example only messages for a given account need to be ordered. Messages for different accounts can execute in parallel. So we also need some sort of group id to identify different sequence streams within our message stream. Read the complete article here
For regular information on Oracle PaaS become a member in the PaaS (Integration & Process) Partner Community please register here.