50 System Design Terminologies
50 System Design Terminologies
Scalability It is the ability of a system to support increased load by Addition of more servers to handle the
adding resources. increase in web traffic.
Load Balancer Dividing the incoming network traffic among multiple servers Load balancing web traffic across
so that no one server processes a large amount of load. multiple EC2 instances using the AWS
Elastic Load Balancer(ELB) Service.
Microservices It is an architectural pattern forcing the structuring of an Breaking down a monolithic application
application as a collection of loosely coupled services. into independent services responsible
for user management, processing
payments, and sending notifications.
CAP Theorem It states that at best, only two out of three guarantees can be When to Trade Off Consistency for
gained in a distributed system: Consistency, Availability, and Availability — And Vice Versa — in
Partition Tolerance. Distributed Database Design.
Sharding It involves breaking down a large database into smaller Sharding a user database based on
pieces called shards for better management. geographic region.
Latency This gets defined as the time that it takes for data to travel Measuring the delay involved in
from point A to point B. message delivery through a chat
application.
Throughput A measure of the quantity of data a system processes in Requests processed by a web server in
some timeframe one second.
Cache Any hardware or software component that stores data to Implementing Redis caching for
obviate future requests for the same data, serving It quickly. repeated database queries.
Content Delivery A server system, geographically dispersed, that shows Web Using Cloudflare CDN for faster web
Network (CDN) content to a user based on the geographical location from page loading.
which he is accessing.
REST API a type of architectural style designed to build web services Designing the Social Media API by
where data is accessed and manipulated using HTTP REST(Representational State Transfer)
requests. principles.
GraphQL It is a language designed to query data, so it is much more Using GraphQL to query user
powerful, efficient, and flexible than REST. information in a single request.
ACID A set of properties ensuring reliable processing of database Ensuring that a banking transaction has
transactions. The properties are Atomicity, Consistency, ACID properties prevents corrupted
Isolation, and Durability. data.
BASE An alternate to ACID that emphasizes Availability and Design of a highly available, eventually
Partition tolerance over strict-Consistency. Basically consistent NoSQL database.
Available, Soft state, Eventually consistent system.
NoSQL A type of database designed to promote storage and retrieval Using MongoDB for a document-based
of data modelled in ways other than the tabular relationships data store.
used in relational databases.
SQL It is the standard language used for storing, manipulating, Writing SQL queries to get data back
and retrieving data in relational databases. from a relational database.
Term Definition Example
Replication A process of copying and maintaining database objects in a It involves allowing a database to be
multitude of databases which make up a distributed database highly available across different
system. geographical locations using replication.
Failover A backup operational mode in which system component Built-in automatic failovers to standby
functions are taken over by other system components in servers in the event of a server failure of
case of loss of a primary system component. your internet applications.
API Gateway A server that sits at the front of an API, receiving API Using AWS API Gateway to manage
requests, applying throttling and security policies, and then APIs.
forwarding them to back-end services.
Service Mesh A dedicated infrastructure layer for facilitating Integrating Istio as a service mesh for
service-to-service communications between microservices. the management of microservice
interactions.
Serverless A Cloud computing implementation that “dynamically allows Run backend code without any server
computing for the allotment of machine resources by the cloud provisioning at your end using AWS
provider”. Lambda.
Event-Driven A software architecture paradigm encouraging the Design a system with event
Architecture generation, detection, and consumption of, and the reaction communications between microservices
to, events in general. using Apache Kafka.
Monolithic A software architecture wherein all the elements are fitted Old traditional enterprise applications
Architecture into a single application and run as a single service. built as a single, large unit.
Distributed A model wherein components located on networked Designing a distributed file system like
Systems computers communicate with each other and coordinate their Hadoop.
actions by passing messages.
Message Queue This method allows asynchronous, service-to-service Using RabbitMQ to queue messages
communication in both serverless and microservices between services.
architectures.
Pub/Sub Model A messaging pattern in which senders (publishers) publish A notification system that uses Google
messages so abstractly that any one of them can end up Cloud Pub/Sub.
being accessed by recipients without the sender having to
even know the identity of the destination receivers
(subscribers).
Data Partitioning Division of a database into smaller, manageable parts. Partitioning a table in a database by
date to allow super-fast query
execution.
Horizontal Increasing the capacity by adding more machines or nodes Adding more web servers to handle an
Scaling within a system. increasing volume of user traffic.
Vertical Scaling Upgrading an already existing machine with more power in Upgrading the RAM of a server so that it
the form of a CPU or RAM. can handle more requests all at once.
Rate Limiting It means controlling the rate of traffic that the network Throttling an API to prevent abusive
interface controller is sending or receiving. behaviour.
Circuit Breaker A design pattern used in modern software development, Handling failed remote service calls
Pattern applied to detect failures and encapsulate the logic of using a circuit breaker in a microservice
preventing a failure from constantly recurring. architecture.
Data Ensuring that data is the same across multiple instances and Maintaining the consistency of user data
Consistency is not corrupted. through multiple replicas of a database.
Term Definition Example
Containerization Basically, this is whenever an application and its Using Docker to containerize the
dependencies are encapsulated into a container to be run on applications for deployment in various
any computational environment. environments such as dev, test, prod
etc.
Kubernetes An open-source platform that automates the process of Run and deploy containerized
application container deployment, scaling, and operation. applications using Kubernetes.
Autoscaling Automatically adjusting the number of computational Utilizing AWS EC2 Auto Scaling feature
resources based on the user load. to dynamically adjust the number of
instances.
Multi-tenancy Architecture where a single instance of a software application SaaS applications, such as Salesforce,
serves multiple consumers/customers. utilize multi-tenancy in their service
provision toward their different
categories of customers.
Load Shedding Backing off some demands or degrading services to maintain This will turn off all non-essential
the health of the overall system under high load. services during times of peak traffic.
Idempotence A property for some mathematical and computer-science An HTTP DELETE request is
operations stating that it has the same effect if repeated idempotent.
more times than once.
Quorum The minimum number of votes needed to commit a Basically, quorum-based replication
distributed transaction. ensures that consistency exists in the
distributed database.
Orchestration A pattern of service interaction where a central coordinator Using a workflow engine to manage
controls the interaction between services. some multi-step business process.
Choreography A service interaction pattern in which every service is Microservices communicating through
self-contained and interacts with others through events; there an event bus in a choreography pattern.
will not be any coordinator or orchestrator.
Service Registry A database that keeps track of instances of microservices. Using the Eureka service registry in a
microservice architecture.
API Rate It means controlling how many requests a client can make Limiting requests to an API to 100
Limiting against an API within a certain timeframe. per minute to prevent abuse.
Data Warehouse A system that helps in the generation of reports and business Amazon Redshift can be implemented
data analytics; the hub of Business Intelligence. in data warehousing.
Data Lake A system or repository where data is kept in native/raw Petabyte scaling for storing and
format, generally as object blobs or files. managing structured and unstructured
data in a data lake.
OLAP Online Analytical Processing : The software category that Use of the OLAP cubes for pointy
allows the analysis of data kept in a database. analytical and arbitrary queries.
OLTP Online Transaction Processing: a class of systems that Using OLTP systems for transaction
manage transaction-oriented applications. data management, as in banking
systems etc.
Big Data Large, complex data sets that cannot be efficiently managed Analyzing social media interactions to
by conventional data-processing software in the best of predict fashion trends.
cases.