Design patterns serve as great communication tools during design conversations with various stake holders.Most of these things we already know but are packaged in succinct manner and I think their importance are limited if majority of stake holders are unaware of those terminologies.Examples like GoF patterns and enterprise patterns from Martin Fowler served the great purpose in capturing the imagination of developers and helped the design communication better.
I believe this documentation from microsoft has same level maturity and very well written with excellent diagrams. This is the best I have seen in this space.
This 236 page PDF document on Cloud Design Patterns is divided into 8 Focus Areas each area consist a list of design patterns. Also note that some of the design patterns fall into multiple categories but intention remains the same.
Most of the samples are in C# and I intend to re-create the sample using open source implementations in java eco system (best of breed of course). Will publish all the same samples github as I keep reading these pattern implementations and best practices. I believe this will serve as great learning tool. I will update this reference list as I complete coding for each pattern.
Availability
- Health Endpoint Monitoring Pattern
- Queue-based Load Leveling Pattern
- Throttling Pattern
- Multiple Datacenter Deployment Guidance
Data Management
- Cache-aside Pattern
- Command and Query Responsibility Segregation (CQRS)
- Event Sourcing Pattern
- Index Table Pattern
- Materialized View Pattern
- Sharding Pattern
- Static Content Hosting Pattern
- Valet Key Pattern
- Caching Guidance
- Data Consistency Primer
- Data Partitioning Guidance
- Data Replication and Synchronization Guidance
Design and Implementation
- Compute Resource Consolidation Pattern
- Command and Query Responsibility Segregation (CQRS) Pattern
- External Configuration Store Pattern
- Leader Election Pattern
- Pipes and Filters Pattern
- Runtime Reconfiguration Pattern
- Static Content Hosting Pattern
- Compute Partitioning Guidance
Messaging
- Competing Consumers Pattern
- Pipes and Filters Pattern
- Priority Queue Pattern
- Queue-based Load Leveling Pattern
- Scheduler Agent Supervisor Pattern
- Asynchronous Messaging Primer
Management and Monitoring
- External Configuration Store Pattern
- Health Endpoint Monitoring Pattern
- Runtime Reconfiguration Pattern
- Instrumentation and Telemetry Guidance
- Service Metering Guidance
Performance and Scalability
- Cache-aside Pattern
- Competing Consumers Pattern
- Command and Query Responsibility Segregation (CQRS) Pattern
- Event Sourcing Pattern
- Index Table Pattern
Resiliency
- Circuit Breaker Pattern
- Compensating Transaction Pattern
- Leader Election Pattern
- Retry Pattern
- Scheduler Agent Supervisor Pattern
Security
And Big Thanks to Microsoft engineers for writing this.