Your dashboard
58 lessons · 3h 38m · everything saved locally in your browser.
Curious
0 XP60 XP to level 2
Badges
0 of 14Your activity
0 active daysGetting Started
1 lessons · 1 minChapter I
12 lessons · 41 minIP
An IP address is a unique address that identifies a device on the internet or a local network. IP stands for "Internet Protocol", which is the set of rules…
beginner2mOSI Model
The OSI Model is a logical and conceptual model that defines network communication used by systems open to interconnection and communication with other…
beginner3mquizTCP and UDP
Transmission Control Protocol (TCP) is connection-oriented, meaning once a connection has been established, data can be transmitted in both directions. TCP has…
beginner2mquizcardsDomain Name System (DNS)
Earlier we learned about IP addresses that enable every machine to connect with other machines. But as we know humans are more comfortable with names than…
beginner8mlivequizLoad Balancing
Load balancing lets us distribute incoming network traffic across multiple resources ensuring high availability and reliability by sending requests only to…
beginner5mlivequizcardsClustering
At a high level, a computer cluster is a group of two or more computers, or nodes, that run in parallel to achieve a common goal. This allows workloads…
beginner3mCaching
"There are only two hard things in Computer Science: cache invalidation and naming things." - Phil Karlton
beginner6mlivequizcardsContent Delivery Network (CDN)
A content delivery network (CDN) is a geographically distributed group of servers that work together to provide fast delivery of internet content. Generally…
beginner3mProxy
A proxy server is an intermediary piece of hardware/software sitting between the client and the backend server. It receives requests from clients and relays…
beginner2mcardsAvailability
Availability is the time a system remains operational to perform its required function in a specific period. It is a simple measure of the percentage of time…
beginner2mlivequizcardsScalability
Scalability is the measure of how well a system responds to changes by adding or removing resources to meet demands.
beginner1mStorage
Storage is a mechanism that enables a system to retain data, either temporarily or permanently. This topic is mostly skipped over in the context of system…
beginner4mcards
Chapter II
15 lessons · 40 minDatabases and DBMS
A database is an organized collection of structured information, or data, typically stored electronically in a computer system. A database is usually…
intermediate3mSQL databases
A SQL (or relational) database is a collection of data items with pre-defined relationships between them. These items are organized as a set of tables with…
intermediate2mNoSQL databases
NoSQL is a broad category that includes any database that doesn't use SQL as its primary data access language. These types of databases are also sometimes…
intermediate3mcardsSQL vs NoSQL databases
In the world of databases, there are two main types of solutions, SQL (relational) and NoSQL (non-relational) databases. Both of them differ in the way they…
intermediate2mquizcardsDatabase Replication
Replication is a process that involves sharing information to ensure consistency between redundant resources such as multiple databases, to improve…
intermediate2mquizIndexes
Indexes are well known when it comes to databases, they are used to improve the speed of data retrieval operations on the data store. An index makes the…
intermediate2mquizNormalization and Denormalization
Before we go any further, let's look at some commonly used terms in normalization and denormalization.
intermediate5mACID and BASE consistency models
Let's discuss the ACID and BASE consistency models.
intermediate2mquizcardsCAP Theorem
CAP theorem states that a distributed system can deliver only two of the three desired characteristics Consistency, Availability, and Partition tolerance (CAP).
intermediate2mlivequizcardsPACELC Theorem
The PACELC theorem is an extension of the CAP theorem. The CAP theorem states that in the case of network partitioning (P) in a distributed system, one has to…
intermediate1mcardsTransactions
A transaction is a series of database operations that are considered to be a "single unit of work". The operations in a transaction either all succeed, or they…
intermediate2mquizcardsDistributed Transactions
A distributed transaction is a set of operations on data that is performed across two or more databases. It is typically coordinated across separate nodes…
intermediate3mquizSharding
Before we discuss sharding, let's talk about data partitioning:
intermediate4mlivequizcardsConsistent Hashing
Let's first understand the problem we're trying to solve.
intermediate5mlivequizcardsDatabase Federation
Federation (or functional partitioning) splits up databases by function. The federation architecture makes several distinct physical databases appear as one…
intermediate2m
Chapter III
12 lessons · 37 minN-tier architecture
N-tier architecture divides an application into logical layers and physical tiers. Layers are a way to separate responsibilities and manage dependencies. Each…
intermediate2mMessage Brokers
A message broker is a software that enables applications, systems, and services to communicate with each other and exchange information. The message broker…
intermediate2mMessage Queues
A message queue is a form of service-to-service communication that facilitates asynchronous communication. It asynchronously receives messages from producers…
intermediate4mquizcardsPublish-Subscribe
Similar to a message queue, publish-subscribe is also a form of service-to-service communication that facilitates asynchronous communication. In a pub/sub…
intermediate3mquizEnterprise Service Bus (ESB)
An Enterprise Service Bus (ESB) is an architectural pattern whereby a centralized software component performs integrations between applications. It performs…
intermediate1mMonoliths and Microservices
A monolith is a self-contained and independent application. It is built as a single unit and is responsible for not just a particular task, but can perform…
intermediate6mquizEvent-Driven Architecture (EDA)
Event-Driven Architecture (EDA) is about using events as a way to communicate within a system. Generally, leveraging a message broker to publish and consume…
intermediate2mEvent Sourcing
Instead of storing just the current state of the data in a domain, use an append-only store to record the full series of actions taken on that data. The store…
intermediate1mCommand and Query Responsibility Segregation (CQRS)
Command Query Responsibility Segregation (CQRS) is an architectural pattern that divides a system's actions into commands and queries. It was first described…
intermediate2mAPI Gateway
The API Gateway is an API management tool that sits between a client and a collection of backend services. It is a single entry point into a system that…
intermediate2mquizREST, GraphQL, gRPC
A good API design is always a crucial part of any system. But it is also important to pick the right API technology. So, in this tutorial, we will briefly…
intermediate8mquizcardsLong polling, WebSockets, Server-Sent Events (SSE)
Web applications were initially developed around a client-server model, where the web client is always the initiator of transactions like requesting data from…
intermediate4mquizcards
Chapter IV
10 lessons · 26 minGeohashing and Quadtrees
Geohashing is a geocoding method used to encode geographic coordinates such as latitude and longitude into short alphanumeric strings. It was created by…
advanced3mliveCircuit breaker
The circuit breaker is a design pattern used to detect failures and encapsulates the logic of preventing a failure from constantly recurring during…
advanced2mquizcardsRate Limiting
Rate limiting refers to preventing the frequency of an operation from exceeding a defined limit. In large-scale systems, rate limiting is commonly used to…
advanced4mlivequizcardsService Discovery
Service discovery is the detection of services within a computer network. Service Discovery Protocol (SDP) is a networking standard that accomplishes the…
advanced2mSLA, SLO, SLI
Let's briefly discuss SLA, SLO, and SLI. These are mostly related to the business and site reliability side of things but good to know nonetheless.
advanced1mcardsDisaster recovery
Disaster recovery (DR) is a process of regaining access and functionality of the infrastructure after events like a natural disaster, cyber attack, or even…
advanced2mcardsVirtual Machines (VMs) and Containers
Before we discuss virtualization vs containerization, let's learn what are virtual machines (VMs) and Containers.
advanced3mquizcardsOAuth 2.0 and OpenID Connect (OIDC)
OAuth 2.0, which stands for Open Authorization, is a standard designed to provide consented access to resources on behalf of the user, without ever sharing the…
advanced3mquizSingle Sign-On (SSO)
Single Sign-On (SSO) is an authentication process in which a user is provided access to multiple applications or websites by using only a single set of login…
advanced4mSSL, TLS, mTLS
Let's briefly discuss some important communication security protocols such as SSL, TLS, and mTLS. I would say that from a "big picture" system design…
advanced2mquiz
Chapter V
6 lessons · 1h 11mSystem Design Interviews
System design is a very extensive topic and system design interviews are designed to evaluate your capability to produce technical solutions to abstract…
advanced5mquizURL Shortener
Let's design a URL shortener, similar to services like Bitly, TinyURL.
advanced12mlivequizWhatsApp
Let's design a WhatsApp like instant messaging service, similar to services like Facebook Messenger, and WeChat.
advanced13mliveTwitter
Let's design a Twitter like social media service, similar to services like Facebook, Instagram, etc.
advanced14mlivequizNetflix
Let's design a Netflix like video streaming service, similar to services like Amazon Prime Video, Disney Plus, Hulu, Youtube, Vimeo, etc.
advanced14mlivequizUber
Let's design an Uber like ride-hailing service, similar to services like Lyft, OLA Cabs, etc.
advanced13mlivequiz