Processing Elements are one of the most important components of Project-X eco-system. When a message (enclosed within a message context) is received into an Integration Flow through an Ingress Connector, it goes through a series of processing elements, each of which performs a specific processing operation on the message context (or on the enclosed message). After the processing, depending on its functionality, the processing element will either hand-over the resulting message context to the next processing element or to a connector or it will complete the message flow accordingly.
In a typical request-response type Integration Flow, processing elements are used in both request path as well as in response path that process request message as well as response message accordingly.
Each Processing Element of Project-X always has a single "Input" port through which the processing element receives the message contexts to be processed. Depending on the Integration Flow, any number of processing elements can send message contexts to a "Input" port of a particular processing element.
Depending on the functionality, each Processing Element can have one or more "Outports", through which the processed message context is sent to another processing element.
Every processing element has a special outport named as "On Exception" outport, to which the message context will be handed over in case of any error occurred while processing. This outport can be easily distinguished as it is normally shown in red color in the Ultra Studio user interface.
"Single Processor" outports are the most widely used type of outports. This type of outport of a processing element can only be connected to the input port of a single processing element.
"Multi Processor" outport is a special type of outport, which can be connected to the input ports of multiple processing elements simultaneously. The processing element will hand-over the processed message context either,
to all the connected processing elements in parallel or
to each of the connected processing elements sequentially or
to a selected sub-set of the connected processing elements
depending on its functionality.
You can check the main types of Processing Elements that are currently available on Project-X from here. Please refer the processing element documentation for more details and sample use cases of these processing elements. Also refer the developer guide on how to write a custom processing element.