System design heavily relies on established design patterns. Software architects combine these patterns to design robust systems.
They are crucial for building reliable, secure, operationally efficient architectures that are optimized for cost and performance.
📝 Learning checks included
đź“‚ Excalidraw architecture diagrams included
Selected Patterns
Each pillar covers specific system design patterns with practical examples.
You don’t want to miss a payment. Let the ordering service create the order in a queue and continue serving more orders without blocking the caller.
So you decided to distribute your services, fine. But, what about data consistency across the different data stores. What can go wrong here?
What happens when your one Email Service is drowning in messages because your product suddenly went viral?
Selected Patterns
Each pillar covers specific system design patterns with practical examples.
One backend is good until your mobile app screams for smaller payloads, your web app demands richer data, and your backend team is drowning in conflicting requests.
This is a system that provides configuration as a service, and it is external to the application.
Selected Patterns
Each pillar covers specific system design patterns with practical examples.
Reduces transformation risk and business disruption by reducing the impact of changes in the monolith. Works hand in hand with the Strangler Fig Pattern.
Your company merged with another organization and your boss wants to plug in Azure Service Bus without touching the legacy code.
Selected Patterns
Each pillar covers specific system design patterns with practical examples.
Store the large payload in external storage, send only a small message with a reference, and let consumers fetch the payload only when they actually need it. Only normal messages flow through the bus.
Sending large payloads directly can cost hundreds of dollars per month even when traffic is low.
Payloads are offloaded to Blob Storage. Events are forwarded by Event Grid to Azure Service Bus, while Azure Functions pick them up on demand.
Large payloads are seamlessly offloaded to S3. Consumers handle claim checks, unaware that S3 is involved.
Selected Patterns
Each pillar covers specific system design patterns with practical examples.
Secondary services (cache, message broker, database) live in a virtual network and reachable only from the web app.
Your application code doesn't have to deal with uploading and downloading data, as the external storage takes care of that.
Selected Patterns
Each pillar covers specific system design patterns with practical examples.
Unburdens the application server from serving static content and leaves it to process more requests.
The next time a user hits the server, the data is fetched from the cache, a fact known as a cache hit, because it is there. This improves the application's performance because there is no call to the database.