-
Notifications
You must be signed in to change notification settings - Fork 35
Trooper Orchestration Profile
The Trooper Orchestration Profile enables chaining of a number of execution stages in a manner reminiscent of workflows. Each stage is implemented as a Trooper Service (see Writing-Services-in-Trooper) and this in turn means any Trooper service can participate in a workflow, with transformation and routing implemented outside the service.
Orchestration in Trooper is defined in a XML based DSL using Mule (http://www.mulesoft.org/) as the underlying technology. Mule is embedded into the Trooper runtime using Spring DI as a light-weight object broker. Mule is therefore not used as a conventional ESB, but rather as an implementation of the SEDA architecture pattern (http://en.wikipedia.org/wiki/Staged_event-driven_architecture) for distributed parallel processing.
GroupID/Org | ArtifactID/Name | Description |
---|---|---|
org.trpr | serviceframework-seda | The Service Orchestration Profile implementation. Includes the Trooper add-ons for this profile. |
A diagrammatic representation of the SEDA model used by Trooper is shown below:
The orchestration profile provides the following to its users:
- Provision for modular development, testing and deployment of workflows and services
- Life-cycle management of workflows, configuration refresh using administrative console(s)
- Compile-and-run support for all orchestration profile features - does not require any packaging for deployment and testing thereby saving development time, providing for easier debugging (via standard break-points in IDEs)
- Implementation of Convention-Over-Configuration practices to ease development, deployment
- Exception routing as JMX notifications - Trooper provides an Exception handling strategy implementation (
org.trpr.platform.seda.impl.mule.exceptionhandling.ServiceExceptionStrategy
) that forwards error details as JMX notifications. - RabbitMQ transport - Trooper provides a Mule 2.x interface compliant transport implementation for RabbitMQ 2.x. See RabbitMQ-Mule-Connector
- Service response filtering router - To filter out error service responses in the orchestration flow. Externalizes chaining logic from services, thereby making it self-contained. See
org.trpr.platform.seda.impl.mule.router.ErrorResponseFilteringRouter
- Check-pointing in workflow -