Cloud Design Pattern Tuesdays
This collection contains a summary and simple implementation of the cloud design patterns covered by the WAF.
Ambassador Pattern
The Ambassador pattern is a design pattern where a helper service acts as an intermediary between a client and backend services.
It's particularly useful for:
- Offloading responsibilities like logging, routing, retry policies, or monitoring
- Supporting legacy applications or hard-to-change systems
- Building shared client connectivity features
- Offloading connectivity concerns to specialists
This pattern is best suited when you need to abstract cross-cutting concerns and is commonly used in microservices architectures. However, it's not recommended for latency-critical applications or when features require deep client integration.
Read more about the Ambassador Pattern
Anti-Corruption Layer Pattern
The Anti-Corruption Layer pattern introduces a layer between two subsystems to prevent undesirable dependencies and preserve the integrity of the internal model.
It's particularly useful for:
- Integrating legacy systems with modern applications
- Working with external services that have different models or protocols
- Ensuring an application's design isn't limited by external dependencies
- Maintaining clean boundaries between different subsystems
This pattern is best suited when you need to integrate systems with differing semantics, but it's not recommended when there are no significant semantic differences between the systems or when the layer would introduce unnecessary complexity.