I’ve designed (on paper) a process model using concepts from Hohpe’s ‘Enterprise Integration Patterns’.
The process is intended to complete in a matter of seconds, so it seems unlike the kind of business processes used as examples in the WM documentation. However it is a business process (essentially, getting a piece of data from one location to another, transforming, auditing, billing).
It seems as if I could implement this design by directly mapping one process step == one IS service. Two important features I require are:
- Tolerance for transient errors: (by placing requests that may fail on a Broker queue)
- Fast user response, even for operations that may take a while: (by returning control to the user as soon as the item is queued)
When I started thinking about how I would wire my EIP-like services together, I realised that although you could hard-code the next step into each service, it would be better to have this in configuration. Soon I had designed (in my head) a configuration file, and a set of services that a service could invoke to route its pipeline to the next step of a process model.
… which, of course, is what Process Engine does. Or so it seems, based on half an hour of reading the Getting Started guide.
Am I right about that? Should I be using Designer and PE?
How does it scale? The guide’s example:
… suggests that it works well for a few long-running business processes, with plentiful pauses while out-of-band activities take place.
What if it was 50 overlapping processes, each of which is expected to complete in a couple of seconds? Is Process Engine designed for this kind of thing?