Sunday, 25 October 2026

Design Patterns in the Cloud

There are a number of design patterns that have emerged and evolved in cloud computing. Microsoft Learn covers off quite a few of those.

Among the common ones you should know are Ambassador, Circuit Breaker, CQRS, Idempotent Consumer, Sharding and Sidecar.

The CQRS Pattern

CQRS aims to overcome certain challenges with implementing CRUD operations (the typical database operation: create, read, update and destroy).  It stands for Command Query Responsibility Segregration. 

Write operations are abstracted into Commands
Read operations are abstracted into Queries

The idea is, as applications scale, read and write operations often have different performance and scaling requirements. Traditional CRUD architectures do not take this asymmetry into account, which can result in challenges - such as:

Data mismatch - read and write representations of data often differ. Some fields needed during updates may be unnecessary during reads.

Lock contention - parallel operations on the same data set can cause lock contention.

Performance problems - the traditional approach can negatively impact performance due to load on the data store and the data access layer and the complexity of queries needed to retrieve information.

Security challenges - can be difficult to manage security when entities are subject to read and write operations.

No comments: