Combined Component: #
The patterns that involve orchestration (API Gateway, Event Mediator, Enterprise Service Bus) may allow for most of the evolutions of the Orchestrator metapattern by deploying multiple versions of the Combined Component that differ in their orchestration logic. There is also a special evolution:
- Replace the Combined Component with several specialized ones
Divide into specialized layers #
Patterns: Layers.
Goal: break out of vendor lock-in [DDD], gain flexibility.
Prerequisite: you have lots of free time.
If you feel that the Combined Component which your system relies on does not cover all your needs, or is too expensive, or unstable, then you may want to get rid of it by replacing it with generic single-purpose tools or a homebrewed implementation that will always adapt to your circumstances.
Pros:
- It’s free.
- You’ll own your code.
- Anything you write will fit your needs for as long as you spend time supporting it.
Cons:
- Takes lots of work.
- Performance may become worse because there will be more components on the requests’ path and also because the industry-grade framework that you used could have been highly optimized.