0% found this document useful (0 votes)
21 views10 pages

Microservices Design Patterns Overview

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)
21 views10 pages

Microservices Design Patterns Overview

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
  • Introduction to Software Design Patterns
  • Client Layer
  • Load Balancer Layer
  • API Gateway Layer
  • Web Server Layer
  • Application Server Layer
  • Caching Layer
  • CDN Layer
  • Database Layer
  • Conclusion

Design Patterns

Used at Different
Software Layers

Load Balancer Application API Gateway


Layer Server Layer Layer

[Link]
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.

[Link]
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.

[Link]
Learn about the
Microservices Design Patterns
in Grokking Microservices
Design Patterns from
[Link]

[Link]

Layer
Design Patterns 
Used at Different 
Software Layers
Application
Server Layer
API Gateway
API Gateway
Layer
Server Laye
Client 
Layer
Client-side Load Balancing: Distributes
requests from the client directly to the available
service instances.
C
Load Balancer
 Layer
Geographical Distribution: Routes traffic based
on the geographical location of the client.
Health Check
API Gateway
Layer
Backend for Frontend (BFF): Tailors API
responses to the needs of individual client types.
Circuit Breaker:
Page Cache Pattern: Stores the output of
expensive operations and reuse it to avoid
duplicated work.
Compression Pattern: Red
Saga Pattern: Manages long-running
transactions and deals with failures and
compensating transactions.
CQRS (Command Query Re
Sidecar Caching: Deploy a dedicated cache
alongside each microservice to provide isolated
and scalable caching functionality.
Prefetching: Anticipates user actions and loads
resources ahead of time.
Parallel Requesting: Makes multiple requests in
para
Sharding Pattern: Distributes data across
multiple databases to improve scalability.
Replication Pattern: Keeps copies of dat
Learn about the 
Microservices Design Patterns
in Grokking Microservices
Design Patterns from 
DesignGurus.io
DesignGurus.io

You might also like