Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

The Camel BAM module provides a Business Activity Monitoring (BAM) framework for testing business processes across multiple message exchanges on different Endpoint instances.

For example if you have Consider, for example, a simple system in which you submit Purchase Orders into system A and then receive Invoices from system B, you . You might want to test that, for a specific given Purchase Order, you receive a matching Invoice from system B within a specific time period.

How Camel BAM Works

What Camel BAM does is use uses a Correlation Identifier on an input message to determine which the Process Instance a message to which it belongs to. The process instance is an entity bean which can maintain state for each Activity (where an activity typically maps to a single endpoint , - such as the receipt submission of Purchase orders, Orders or the receipt of Invoices).

You can then add rules which are fired to be triggered when a message is received on any activity - such as to set time expectations , or to perform real time reconciliation of values across activities etc.

Simple Example

The following example shows how to perform some time based rules on a simple business process of 2 activities - A and B (which maps to the Purchase Order and Invoice example above)- which correspond with Purchase Orders and Invoices in the example above. If you want would like to experiment with this scenario, you could may edit the this Test Case, which defines the activities and rules, and then tests that they work.

...

...

As you can see in the above example, we first define two activities first, and then we define rules on to specify when we expect the activities on an individual process instance to complete by along with the time at which we should assume there is an error.them to complete for a process instance and when an error condition should be raised.p. The ProcessBuilder is a RouteBuilder and can be added to any CamelContext.

Complete Example

For a complete example please see the BAM Example, which is part of the standard Camel Examples

Use Cases

In the world of finance, a common requirement is tracking financial trades. Often a trader will submit a Front Office Trade which then flows through the Middle Office and Back Office through various systems to settle the trade so that money is exchanged. You may wish to add tests test that the front and back office trades match up within a certain time period; if they don't match or a back office trade does not arrive within a required amount of time, you might want to fire off signal an alarm.