Show Menu
Cheatography

Scalability part2 Cheat Sheet (DRAFT) by

A scalable system is one that can handle rapid changes to workloads and user demands. Scalability is the measure of how well that system responds to changes by adding or removing resources to meet demands.

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Reverse proxy

Distribute incoming traffic across multiple backend servers
Ensures that no single server becomes overwh­elmed with requests
andles routing traffic to the available servers, making it simple to scale horizo­ntally
Can easily scale applic­ation by adding or removing backend servers as needed
Compress responses before sending them to clients, reducing the amount of data transm­itted
Offloading SSL termin­ation to the reverse proxy alleviates the resour­ce-­int­ensive task of encryp­tio­n/d­ecr­yption from backend servers

Load Balaner

Distri­butes incoming traffic
Ensures optimal resource utiliz­ation, fault tolerance, and scalab­ility as the applic­ation grows
Types:
Hardware Load Balance
Supports L4* and L7*
Higher cost
Limited flexib­ility and agility compared
Software Load Balancer
Supports only L7*
Lower cost compared to HLB
Greater flexib­ility and agility in deployment and manage­ment.
L4 - Transport Layer of the OSI includes UDP,TCP, SCTP
L7 - Applic­ation Layer of the OSI which is highest layer includes HTTP, HTTPS, SFTP etc
 

DNS as load balancer

Involves leveraging DNS to distribute incoming client requests across multiple backend servers or resources.
Returns single IP in round robin fashion
can be configured along with health checks
DNS records can be updated dynami­cally based on server availa­bility and load condit­ions.
it's essential to consider the limita­tions and potential latency issues associated with DNS caching and propag­ation
Drawback
Indefinite caching
Low or zero TTLs
Very high load on DNS

SAGA Pattern

SAGA breaks down complex transa­ctions into smaller, loosely coupled units of work called "­sag­as."­
In a micros­ervices archit­ecture each micros­ervice can represent a step in the saga, allowing them to be scaled indepe­ndently based on demand
Asynch­ronous nature can be leveraged to improve scalab­ility by decoupling services and allowing them to scale indepe­ndently
the SAGA pattern's transa­ction decomp­osi­tion, asynch­ronous commun­ica­tion, and distri­buted coordi­nation can aid in constr­ucting scalable distri­buted systems.