Cloud Design Patterns 1711512535
Cloud Design Patterns 1711512535
Introduction
When designing and implementing cloud applications, it's crucial to adhere to certain mandatory
categories. These encompass eight distinct categories each of which includes detailed information
on following.
Bhagyaraj Dhamodaran 1
Cloud Design Patterns
Cache-aside Data Management Load data on demand into a cache from a data store; This pattern can improve
/ Perf & Scalability performance and helps to maintain consistency b/w data held in the cache and
the data in the underlying data store.
Circuit Breaker Resiliency
Handle faults that time to rectify when connecting to a remote service or
resource. This pattern can improve the stability and resiliency of an application.
Compensating Transaction Resiliency
Undo the work performed by a series of steps, if one or more of the operations
fails. Operations that follow the consistency model are commonly found in cloud-
hosted applications that implement complex business processes and workflows.
Competing Consumers
Messaging / Multiple concurrent consumers to process messages received on the same
Perf & Scalability messaging channel to optimize throughput, to improve scalability, availability and
to balance the workload.
Compute Resource Design and
Consolidation Implementation Consolidate multiple tasks or operations into a single computational unit to
increase compute resource utilization and reduce the costs.
Command and Query Data Management
Responsibility Segregation / Design and Segregate operations that read data from operations that update data by using
(CQRS) Implementation / separate interfaces to maximize performance, scalability, and security for higher
Perf & Scalability flexibility.
Event Sourcing
Data Management Append-only store to record the full series of events rather than storing the
/ Perf & Scalability current state; To simplify tasks in complex domains by avoiding the requirement
to synchronize the data model and the business domain; improve performance,
scalability and responsiveness; provide consistency for transactional data; and
maintain full audit trails and history that may enable compensating actions.
External Configuration Store Design and
Implementation / Move configuration information out of the application deployment package to a
Management & centralized location; opportunities for easier management and control of
Monitoring configuration data and for sharing configuration data across applications and
instances.
Federated Identity Security
Delegate authentication to an external identity provider. To simplify development,
minimize the requirement for user administration and improve the user
experience of the application.
Gatekeeper Security
Protect applications and services by using a dedicated host instance that acts as
a broker between clients and the application or service, validates and sanitizes
requests, and passes requests and data between them. This pattern can provide
an additional layer of security and limit the attack surface of the system.
Health Endpoint Monitoring Design and
Implementation / Implement functional checks within an application that external tools can access
through exposed endpoints at regular intervals. This pattern can help to verify
that applications and services are performing correctly.
Index Table
Data Management Create indexes over the fields in data stores that are frequently referenced by
/ query criteria. This pattern can improve query performance by allowing
Perf & Scalability applications to more quickly retrieve data from a data store.
Leader Election
Design and Coordinate the actions performed by a collection of collaborating task instances
Implementation / in a distributed application by electing one instance as the leader that assumes
Resiliency responsibility for managing the other instances. This pattern can help to ensure
that tasks do not conflict with each other,
cause contention for shared resources, or inadvertently interfere with
the work that other task instances are performing.
2 Bhagyaraj Dhamodaran
Cloud Design Patterns
Materialized View Data Management
/ Perf & Scalability Prepopulated views over the data in one or more data stores when the data is
formatted in a way that does not favor the required query operations. This pattern
can help to support efficient querying and data extraction and improve application
performance.
Pipes and Filters Design and Decompose a task that performs complex processing into a series of discrete
Implementation / elements that can be reused. This pattern can improve performance, scalability
Messaging and reusability by allowing task elements that perform the processing to be
deployed and scaled independently.
Priority Queue Messaging /
Perf & Scalability Prioritize requests sent to services so that requests with a higher priority are
received and processed more quickly than those of a lower priority.
This pattern is useful in applications that offer different service level guarantees to
individual types of clients.
Queue-based Load Leveling Availability /
Messaging / Use a queue that acts as a buffer between a task and a service that it invokes to
Perf & Scalability smooth intermittent heavy loads that may otherwise cause the service to fail or
the task to timeout. This pattern can help to minimize the impact of peaks in
demand on availability and responsiveness for both the task and the service.
Retry Resiliency
Enable an application to handle temporary failures when connecting to
a service or network resource by transparently retrying the operation in
the expectation that the failure is transient. This pattern can improve the
stability of the application.
Runtime Reconfiguration Design and
Implementation / Design an application so that it can be reconfigured without requiring
Management & redeployment or restarting the application. This helps to maintain availability and
Monitoring minimize downtime.
3 Bhagyaraj Dhamodaran