Using Asynchronous Integration
Asynchronous integration, as seen in the given example, is generally used when transactions have a long lifetime or require resources that are shared between many users to be locked (like seats on an airplane) for the life of the transaction. Typical scenarios for asynchronous integration are
- In a peer to peer process (as opposed to a client server process). For example when making a stock trade, either selling or buying, an asynchronous implementation is necessary. Generally one requests a trade from the server, and the server then tries to find someone in the market that is requesting the resource that is being bought or sold. Negotiation may take place based on pricing rules (such as Bid/Ask automatic values based on lot size) and a price is met, the trade is executed and each party informed. This process can take several microseconds (in the case of a market trade) or years (in the case of a stop/limit trade).
- When notifications of the status of a transaction are required at fixed times or when based on certain external events occurring. A good example of this is an online auction. A fixed time update is required at the end of the auction; external events occur when others bid on the auction and you need to know what they are.
- When it takes a lot of time for a process to complete. For example if the call to a server requires a bulk update to a database that can take a long time. An asynchronous update informs the caller in this case when the transaction is complete. When using a synchronous transaction, the session would have to stay open for the lifetime of the process, or the caller would have to continually ping the server for the results.
There are several technologies that can be used to realize asynchronous integration, which are explored in more detail in the following chapters.