Design and Implementation patterns

Good design encompasses factors such as consistency and coherence in component design and deployment, maintainability to simplify administration and development, and reusability to allow components and subsystems to be used in other applications and in other scenarios. Decisions made during the design and implementation phase have a huge impact on the quality and the total cost of ownership of cloud hosted applications and services.

Pattern Summary
Ambassador Create helper services that send network requests on behalf of a consumer service or application.
Anti-Corruption Layer Implement a fa├žade or adapter layer between a modern application and a legacy system.
Backends for Frontends Create separate backend services to be consumed by specific frontend applications or interfaces.
CQRS Segregate operations that read data from operations that update data by using separate interfaces.
Compute Resource Consolidation Consolidate multiple tasks or operations into a single computational unit
External Configuration Store Move configuration information out of the application deployment package to a centralized location.
Gateway Aggregation Use a gateway to aggregate multiple individual requests into a single request.
Gateway Offload Offload shared or specialized service functionality to a gateway proxy.
Gateway Routing Route requests to multiple services using a single endpoint.
Leader Election Coordinate the actions performed by a collection of collaborating task instances in a distributed application by electing one instance as the leader that assumes responsibility for managing the other instances.
Pipes and Filters Break down a task that performs complex processing into a series of separate elements that can be reused.
Sidecar Deploy components of an application into a separate process or container to provide isolation and encapsulation.
Static Content Hosting Deploy static content to a cloud-based storage service that can deliver them directly to the client.
Strangler Incrementally migrate a legacy system by gradually replacing specific pieces of functionality with new applications and services.