Configurable VM pipeline for modularized information processing
Problem
This pattern provides the ability to configure pipes for linear and non-linear message processing in a manner that is reliable and highly scalable. Message processing involves multiple steps, where each processing step can be distributed across virtual machine instances. VMs should be configurable into reusable and configurable workflow assembly lines.
Solution
Define dedicated VMs that execute different steps of a workflow or a process. Establish message queues that applications can subscribe to. Alternatively, use a shared file system, virtual disk storage or virtual database stores accessible by worker VMs for message processing.
Application
- Scale individual processes as desired in a flow
- Reuse logic across multiple applications (e.g., payment processing, claims processing, message transformation and routing)
- Isolating, encapsulate and scale capabilities through dedicated VMs
Impacts
- Additional resource overheads
- Potential for tight-coupling between VMs to process flows
- Refactoring applications to isolate and encapsulate process steps may add costs
- Processing overheads due to VM switching
Anti-Patterns
-
Non-dedicated VMs – bulky VMs that execute all steps of process or modules of an application
Related Patterns
- Platform VM Pattern
- Application Virtualization Pattern
- Stateless VM Pattern
- VM Factory VM Pattern



