0% found this document useful (0 votes)
33 views

Design Patterns

Design

Uploaded by

karunjsiruthai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views

Design Patterns

Design

Uploaded by

karunjsiruthai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Design Patterns

Used at Different
Software Layers

Load Balancer Application API Gateway


Layer Server Layer Layer

DesignGurus.io
Client
Layer

Client-side Load Balancing: Distributes


requests from the client directly to the available
service instances.

State Pattern: Allows an object to alter its


behavior when its internal state changes.

Composite UI Pattern: Composes responses


from multiple microservices
to render the complete UI.

DesignGurus.io
Load Balancer
Layer
Geographical Distribution: Routes traffic based
on the geographical location of the client.

Health Checks: Periodically checks the health of


the servers and routes traffic only to healthy
ones.

Affinity Based Routing: Routes the user's


request to the same server for maintaining
session persistence.

Least Connections: Routes traffic to the server


with the fewest active connections.
API Gateway
Layer
Backend for Frontend (BFF): Tailors API
responses to the needs of individual client types.

Circuit Breaker: Detects failures and prevents


applications from trying to perform actions that
are doomed to fail.

Retry Pattern: Helps to handle transient failures


when it tries to connect to a remote service or
network resource.

Request Collapsing: Collapses multiple requests


for the same operation into a single request.
Web Server
Layer
Page Cache Pattern: Stores the output of
expensive operations and reuse it to avoid
duplicated work.

Compression Pattern: Reduces the size of the


response to improve load times.

Lazy Loading: Defers initialization of an object


until the point at which it is needed.

Content Negotiation Pattern: The server


generates different versions of a resource and
serves the one matching the client’s criteria.
Application
Server Layer
Saga Pattern: Manages long-running
transactions and deals with failures and
compensating transactions.

CQRS (Command Query Responsibility


Segregation): Separates read and write
operations to improve performance and
scalability.

Proxy Pattern: Provides a surrogate or


placeholder for another object to control access
to it.

Chain of Responsibility: Passes the request


along a chain of handlers.
Caching Layer

Sidecar Caching: Deploy a dedicated cache


alongside each microservice to provide isolated
and scalable caching functionality.

Cache Chaining: Arrange multiple cache layers


hierarchically to handle different granularity or
lifetime, querying each layer sequentially on a
cache miss.

Time-to-Live (TTL) Caching: Assigns a


predefined lifespan to each cache entry,
removing or refreshing the entry once its
lifespan expires.
CDN Layer

Prefetching: Anticipates user actions and loads


resources ahead of time.

Parallel Requesting: Makes multiple requests in


parallel to improve load times.

Edge Computing: Processes data closer to the


location where it is needed.

Domain Sharding: Splits resources across


multiple domains to increase parallel downloads.

Adaptive Image Delivery: Delivers images


tailored to the device and user context.
Database
Layer
Sharding Pattern: Distributes data across
multiple databases to improve scalability.

Replication Pattern: Keeps copies of data in


multiple locations for availability and reliability.

Read-Replica Pattern: Uses read replicas to


offload read operations from the primary
database instance.

Query Object Pattern: An object that represents


a database query.

DesignGurus.io
Learn about the
Microservices Design Patterns
in Grokking Microservices
Design Patterns from
DesignGurus.io

DesignGurus.io

You might also like