Process Component Technology Selection

Process Components may be implemented in any JMS-enabled technology that conforms to the interface specification in the product documentation.

Generally speaking Process Components can be classified using a combination of the duration of the Process Component lifecycle as well as a description of the statefulness.

Process Component duration defines how long it takes to execute all tasks in the plan item. There is no absolute number that defines a short vs. long-lived Process Component. Instead the duration defines whether or not the task can be amended in-flight:

  • Short-lived – an in-flight process cannot be amended. When suspended by Orchestrator the process runs to completion and returns a complete response.
  • Long-lived – an in-flight process can be amended. When suspended by Orchestrator the process may either run to completion and return a complete response, or it may suspend execution and return a suspend response. If a suspend response is returned, it must handle an activate request from Orchestrator later to resume execution.
  • Process Component statefulness defines whether or not a Process Component needs to persist state internally during the life of an invocation. This does not include storing data using OMS data service interfaces, which is available for all Process Components. Instead the determining requirement is whether or not state is stored directly within the Process Component:
    • Stateless – short-lived process component that is invoked and does not require state persistence.
    • Stateful – short or long-lived process component that is invoked and does require state persistence.

The choice of stateless or stateful Process Component is not necessarily determined by whether the backend systems being invoked are synchronous or asynchronous. Asynchronous backend system invocation is a common use case for stateful Process Component. However it may be possible to pass a correlationID through the backend system that allows the use of a stateless Process Component. Consequently a Process Component is defined as a logical entity that provides a given set of functionality. It does not necessarily translate directly into a single physical process that is invoked and runs to completion.

If a Process Component requires manual interaction then it will in almost all cases be defined as stateful.