This figure demonstrates the relationship of various AC4J components; namely Active EJBs, Interaction, Process, Reaction, Data Tokens and AC4J Databus. Interaction is a long-lived unit of work that reflects the behavior of a business transaction. Interaction can have multiple Processes and every Process can have multiple Reactions. Every Process has a base (or a root) Reaction. Also, a Process is mapped 1-to-1 with an Active EJB instance. An Active EJB instance and it's method is created when a request for service arrives. If all the input parmeters (in the form of Data Token) to this Active EJB method are provided (or arrived in the Databus) then the Reaction is fired inside the Process. The asynchronous communication between the client and all Reactions is controlled by the AC4J Databus. The Figure shows an "Interaction1" with 2-Processes: takeOrder and checkINV. The first "takeOrder" Process is associated with an Active EJB called JEMPurchaseOrderBean which has a Reaction (base Reaction: takeOrder). This Reaction requests services from another Active EJB called JEMInventoryBean to complete the Interaction. The request is routed through the AC4J Databus and is shown as the first call(checkINV Process) to the Databus with an arrow#1 pointing from the Reaction to the AC4j Databus. This activates the Active EJB, JEMInventoryBean, and fires the Reaction, checkINV. This step is shown as an arrow#2 from Databus to the checkINV Process [fireReactionIn(checkINV Process)]. Once the checkINV Reaction completes (business logic) it returns the results to the callee Process, takeOrder. The 'return' goes through the AC4J Databus and is named returnTo(takeOrder Process) as step#3. Finally, the returned DataToken fires another Reaction (not shown in the Figure) inside the takeOrder Process. This step is shown as arrow#3 from the Ac4J Databus to the Ac4J server [fireReactionIn(takeOrder Process)]. The Reaction is activated only when all the Data Tokens are available and the conditions are matched, the Reaction fires, which causes the method to execute. The Reactions can 'push' and 'pull' the Data-Tokens from the AC4J Databus. The 'return' values from an Active EJB method (or Reaction) is transformed into a Data-Token by the AC4J infrastructure. Similarly, the AC4J infrastructure transforms the Data Tokens to the valid input parameters.