Justified Code/System Design Patterns

  • $99

System Design Patterns

  • Course
  • 35 Lessons

System design heavily relies on established design patterns. You can design distributed systems by using a combination of these patterns.

These patterns are crucial for building reliable, secure, operationally efficient architectures that are optimized for cost and performance.

📝 Learning checks included

Contents

Reliability

No more single point of failure. Use the publisher subscriber pattern
Never miss a payment again. The system design pattern every distributed system needs
Preview
The Competing Consumers Pattern
Azure Functions Competing For The Messages In Azure Service Bus
Autoscaling Takes Time. Meet Your SLA While Preserving Cost - The Throttling Pattern
The Auto Scaling Pattern
Decouple Your Application Processing with Queueing

Legacy Modernization

Modernizing your monolithic application? You need the anti-corruption layer.
Modernize Your Legacy System Incrementally - Follow The Strangler Fig Pattern
Integrate Legacy Systems With Minimal Need for Modification - Use the Messaging Bridge Pattern

Operations

Things Are Fine Until You Add a Mobile App. Meet The Backends For Frontends Pattern
Preview
The Backend For Frontend Is Not Your API Gateway
The External Configuration System Pattern
External Configuration System Example: Azure Key Vault
Centralized Logging Tradeoffs Analysis

Cost Optimization

Stop Sending Large Messages Through Your Message Broker - Use The Claim-Check Pattern
Claim-Check Examples: AWS SQS Extended Client SDK, Azure Serverless (ASB, Blobs, Event Grid, Functions)

Security

Building Your Own Identity Service Is Hard - Use The Federated Identity Pattern
Federated Identity Example: Azure Active Directory
The Gatekeeper Pattern
Gatekeeper Example: Azure Application Gateway, VNets, ASE
Gatekeeper Example: AWS WAF, NLB, EC2, Elastic Beanstalk, VPC, PrivateLink
The Valet Key Pattern
The Real Reasons Three-Tier Architecture Is Still Used.
Preview

Performance

The Static Content Hosting Pattern
The Easiest Way to Increase Our Application Throughput
The Cache-aside Pattern
Preview
Optimizing the services communication with gRPC protocol

Maintainability

The Humble Object Pattern
Preview
Don’t Make This Common Software Design Mistake!
The Gateway Pattern

Data

Dealing with Huge Data Tables: Millions of Records Slowing Our Business
Why Relational Databases Are NOT Scalable By Default
The Cure to RDBMS Scalability Limitation: Database Replication & CQRS

Learning checks

Check your knowledge