- Vishakha Sadhwani
- Posts
- 50 Backend & System Design Concepts Every Engineer Must Know
50 Backend & System Design Concepts Every Engineer Must Know
All the technical & AI terms worth actually understanding before your next interview.
This is the vocabulary of modern backend and system design, the 50 terms that show up in architecture diagrams, design docs, and interviews.
Each one gets a plain-English explanation, and every section ends with the best free way to actually learn it: a crash course, a video, and a solid blog or doc to go deeper.
Skim it as a glossary, or work through it section by section. The links are all free courses, crash courses, or official docs.
Networking
Before a single line of your code runs, a request has already travelled through DNS, a CDN, a load balancer, and a proxy. This is the layer that sits in front of your application.
DNS converts a human-readable domain name (like
example.com) into the IP address a machine can actually route to.CDN serves cached copies of your content from edge servers close to the user, and only forwards to the origin server on a cache miss.
Load Balancer spreads incoming traffic across multiple servers so no single one gets overwhelmed.
Reverse Proxy sits in front of your backend servers, forwarding client requests to them while hiding and protecting them.
HTTPS encrypts client-server communication by layering TLS on top of HTTP, so data in transit can't be read or tampered with.
Learn it
Crash course: Networking crash course (YouTube)
Read: Cloudflare Learning Center — clean, well-illustrated explainers for DNS, CDN, load balancing, reverse proxy, and HTTPS/TLS
Backend & APIs
Once a request reaches your application, it's spoken through an API. These five terms cover how software talks to software.
API is a defined way for software applications to communicate with each other, a contract for requests and responses.
REST is an architectural style for designing web APIs around resources and standard HTTP methods (GET, POST, PUT, DELETE).
GraphQL lets clients request exactly the data they need in a single query, no more over-fetching or under-fetching.
WebSocket keeps a persistent, two-way connection open for real-time communication (think chat, live dashboards, multiplayer).
Webhook flips the model around: instead of you polling, the server automatically sends data to your endpoint when an event occurs.
Learn it
Databases
Every stateful system needs a place to store data reliably. These are the fundamentals of relational databases.
Primary Key uniquely identifies each row in a table, so there's never ambiguity about which record you mean.
Foreign Key links related data across tables by pointing to another table's primary key, enforcing referential integrity.
Index is a lookup structure (usually a B-tree) that speeds up queries so the database doesn't scan every row.
Transaction groups multiple operations so they either all succeed or all fail together, never halfway.
ACID (Atomicity, Consistency, Isolation, Durability) is the set of guarantees that keep those transactions reliable even under failures and concurrency.
Learn it
Watch: Hussein Nasser's Fundamentals of Database Engineering (free on his YouTube channel) — the go-to for keys, indexing, transactions, and ACID by example
Read: GeeksforGeeks DBMS guide · PostgreSQL official documentation
Caching
Caching is how you make things fast: keep frequently used data close so you don't recompute or refetch it every time. The catch is keeping it fresh.
Cache stores frequently accessed data in a fast layer (memory) for quicker retrieval.
Cache Invalidation removes or refreshes stale entries when the underlying data changes. Famously one of the hardest problems in computer science.
Redis is an in-memory data store commonly used as a cache (and much more).
TTL (Time To Live) is how long a cached entry stays valid before it automatically expires.
Cache Miss happens when requested data isn't in the cache, forcing a slower fetch from the source.
Learn it
Authentication
Authentication proves who you are; authorization decides what you can do. Confusing the two is one of the most common security mistakes.
Authentication verifies who a user is (login, credentials, MFA).
Authorization determines what an authenticated user is allowed to access.
JWT (JSON Web Token) is a compact, signed token that securely carries user claims, so a server can trust a request without a database lookup.
OAuth is a delegated-authorization framework, the thing behind "Sign in with Google/GitHub."
Session stores user state (usually server-side, referenced by a cookie) so the user stays logged in between requests.
Learn it
System Design (Scaling & Data Distribution)
When one machine isn't enough, you scale. These terms cover how you grow a system and spread data and load across it.
Horizontal Scaling adds more servers to share the load (scale out). Preferred for large systems for cost and fault tolerance.
Vertical Scaling adds more resources (CPU, RAM) to a single server (scale up). Simple, but it has a hard ceiling.
Replication keeps copies of your data on multiple servers for availability and faster reads.
Sharding splits a database across multiple machines, with each shard holding a subset of the data.
Rate Limiting caps how many requests a client can make in a window, protecting your system from overload and abuse.
Learn it
Read: The System Design Primer (GitHub) — the canonical free study repo · ByteByteGo: Scale from Zero to Millions of Users
Watch: ByteByteGo and Gaurav Sen on YouTube both have excellent short explainers on scaling, sharding, and replication.
Event-Driven Systems
Not everything should happen synchronously in the request path. Event-driven systems let services communicate and do work in the background.
Queue stores tasks so they can be processed asynchronously, one consumer at a time, smoothing out spikes.
Pub/Sub lets publishers broadcast messages to many subscribers at once, decoupling who sends from who receives.
Event is a record that something happened in the system (e.g.
OrderPlaced), which other services can react to.Worker is a background process that picks up jobs from a queue and processes them off the main request path.
Cron Job runs scheduled tasks automatically on a fixed time interval (nightly reports, cleanups, reminders).
Learn it
Read: Messaging patterns: Queues, Pub/Sub & Event Streams (Design Gurus) · Apache Kafka fundamentals (Confluent, free)
Watch: Search "Kafka / RabbitMQ crash course" on YouTube for hands-on walkthroughs once the concepts click.
Architecture
How you structure an application, and how it survives failure, defines its long-term health. These are the big architectural ideas.
Microservices split an application into small, independent services that deploy and scale on their own.
Monolith keeps everything in one deployable unit. Simpler to start with, harder to scale a large team on.
Feature Flag turns features on or off at runtime, so you can ship code without releasing it (or roll back instantly).
Circuit Breaker stops calling a failing dependency for a while, preventing one failure from cascading through the system.
Idempotency guarantees that making the same request twice has the same effect as making it once. Essential for safe retries.
Learn it
AI Engineering
The newest layer of the stack. If you're building anything with LLMs, these five terms are the foundation.
Embedding turns data (text, images) into a numerical vector so you can measure similarity and search by meaning.
Vector Database stores and searches those embeddings efficiently, powering semantic search and retrieval.
RAG (Retrieval-Augmented Generation) combines retrieval with an LLM, feeding it relevant context so answers are grounded and current.
Context Window is the amount of information (tokens) an LLM can consider at once, its working memory for a request.
MCP (Model Context Protocol) is an open standard that lets AI models securely connect to external tools and data sources.
Learn it
Development
Finally, the tooling that gets your code tested, packaged, shipped, and versioned.
CI/CD automates testing and deployment so changes reach production quickly and safely.
Docker packages an application with everything it needs into a portable container that runs the same anywhere.
Kubernetes orchestrates those containers at scale, handling scheduling, scaling, networking, and self-healing.
Git Rebase moves or combines commits to produce a cleaner, more linear Git history.
Semantic Versioning communicates the nature of a release through
MAJOR.MINOR.PATCH(breaking / feature / fix).
Learn it
Crash courses: CI/CD (YouTube) · Docker crash course (YouTube) · DevOps concepts (YouTube) · GitOps (YouTube)
Git Rebase: Pro Git: Rebasing (free book) · Atlassian: git rebase tutorial
Semantic Versioning: semver.org (the spec)
Crash Course Quick List
Every video in one place, in case you just want the links:
Networking — https://youtu.be/bEFAFHIahXk
APIs — https://youtu.be/UXA8MJUWUqU
Caching / Redis — https://www.youtube.com/watch?v=ETvLl-8bPbo
JWT vs OAuth — https://www.youtube.com/watch?v=zriMiuFkzKU
Vector Database — https://www.youtube.com/watch?v=gl1r1XV0SLw
Tool Calling (LLMs) — https://www.youtube.com/watch?v=h8gMhXYAv1k
CI/CD — https://youtu.be/ixNNyLcWXX8
DevOps concepts — https://youtu.be/C4IAGERO3o8
GitOps — https://youtu.be/xRIre6L_gAo
How to Use This List
Don't try to focus on all these 50 topics together!
Pick the section closest to what you're building or interviewing for, watch the crash course, then read one doc to go a level deeper. The goal isn't to recognize these terms, it's to know when to reach for each one and what trade-off it buys you.
Learn them in context and they stop being flashcards and start being tools.
All links are free courses, crash courses, or official docs. Video availability and course details change over time, so if a link has moved, a quick search on the title will usually find the current version.