Implement a Façade or Adapter layer between different subsystems that don’t share the same semantics (either permanently or temporarily)
When to use this pattern?
Multi stage system migration
Multiple subsystems with different technologies semantics, still need to communicate
Asynchronous message processing systems like JMS, AMQP, STOMP
When NOT to use this pattern?
No Significant semantic differences between legacy and new systems.
Design Decision:
Choose a standalone ACL layer when
Multi-stage system migration
Permanent ACL
Scalability
Extra Cost
Choose ACL in the new environment when
Permeant communication with another legacy system.
No standalone extra fees.
No control to change the legacy system
Choose ACL in the legacy environment when
Permeant communication with a new system.
No standalone extra fees
No control over new system