Previous Topic: Navigation ToleranceNext Topic: Match Tolerance


Logical Transactions

A logical transaction appears as a single node in a conversation. A logical transaction consists of one Meta transaction with one or more specific transactions.

When a logical transaction appears in the search for a specific request, the Meta transaction is consulted. The Meta transaction determines if this transaction can respond to the request. If the Meta transaction responds to the request, then all the specific transactions are asked if they can respond to the request. If none of the specific transactions can respond to the request, then the response is taken from the Meta transaction.

This logic can be expressed in the following pseudo code:

for each logical transaction \{
 
if (meta transaction request matches the given request) \{
// This node would handle the request for each specific transaction in this node \{
if (the specific transaction matches the given request) \{
return the response from the specific transaction
\}
\}
// No specific transaction found for the given request
return the response from the meta transaction
\}
\}

Further, a physical Meta transaction carries a list of specific transactions and a list of child Meta transactions. The list of child Meta transactions allows Meta transactions to be structured as a decision tree.