Content-based Routing

An important requirement for message processing is a dispatching of a received message to one or more receivers based on the content of a

This section explains how Content-based Routing can be implemented for Infinity Service Bus.

Modeling of Routing

Routing topologies are modeled as Process Definitions in Stardust. Conditions for Transitions are defined against the process message data.

Messages and Process Data

Many routing conditions - especially in early steps of the processing - can be defined against message header data (e.g. the type of a FIX or SWIFT message).

As header and body message structures possibly received via Camel Triggers in Stardust.can be mapped to different Process Data,

Marshalling of the message body into corresponding Structured Data Types in Stardust might occur later in the Process if needed.

Internal Representation of Structured Data in Stardust

Stardust allows you to model arbitrary Structured Data Types for Process Data. The concepts for Structured Data Types are conceived to cover the semantics of XSD schemas e.g.

In fact Structured Data Types are very often used in Stardust to represent request and response messages for the invocation of Web Services and the corresponding Structured Data Types are directly imported from the corresponding XSD fragments of the WSDL definition for these Web Services.

However, the internal representation of Data of Structured Data Types in Stardust is more efficient as the XML payload for Web Service invocation:

Data of Structured Data Types are represented as Map/List structures in Java. Hence, memory and performance footprint close to a compiled solution can be achieved.

Message Type-based Routing

The following definition of a Camel Trigger will

instantiate the corresponding whenever FIX messages are received from the QuickFIX/J Endpoint,

The Process Data FIX Message Type can immediately be used for routings decisions.

Message Body-specific Routing

Message bodies or entire messages can be mapped to Process Data of Structured Data Types. The following Structured Data Type NewOrderSingle represents the FIX Message structure for NewOrderSingle

If the message content of a corresponding FIX message has been mapped to Process Data of type NewOrderSingle values of message fields can be used in routing decisions e.g. like