System Design
System design is the process of defining the architecture, components, interfaces, and data flow of a software system to satisfy specified functional and non-functional requirements, such as scalability, reliability, and latency. , a URL shortener or chat app) while reasoning through trade-offs out loud.
300 resources across 2 libraries
Glossary Terms(4)
System Design
System design is the process of defining the architecture, components, interfaces, and data flow of a software system to satisfy specified functional and non-f…
Coding Interview
A coding interview is a technical assessment in which a candidate solves algorithmic or data-structure problems, usually under time pressure and while explaini…
Computer Networks
Computer networks are interconnected systems of devices that communicate by exchanging data over shared communication links, using standardized protocols to ad…
Staff Engineer
Staff Engineer is a senior individual-contributor (IC) role in software engineering, typically one or two levels above Senior Engineer, focused on technical le…
Interview Questions(296)
What is Database Sharding?
Database sharding is a horizontal partitioning technique that splits a large dataset across multiple independent database servers (shards), where each shard ho…
What is Database Replication?
Database replication is the process of continuously copying data from one database server (the primary) to one or more other servers (replicas), so multiple co…
What is CAP Theorem?
CAP theorem states that a distributed data store can only guarantee two of three properties at once — Consistency, Availability, and Partition tolerance — duri…
How Do You Choose a Sharding Key?
A good sharding key is a column with high cardinality and an even, predictable value distribution that matches your query patterns, so writes and reads spread…
What is Range-Based Sharding?
Range-based sharding assigns rows to shards based on contiguous ranges of the shard key's value, so each shard owns a specific, ordered slice such as user IDs…
What is Hash-Based Sharding?
Hash-based sharding applies a hash function to the shard key and uses the result (typically modulo the shard count) to assign each row to a shard, which spread…
What is Consistent Hashing and Why Do Databases Use It?
Consistent hashing maps both shard keys and shard servers onto the same circular hash space, so each key is owned by the next server found clockwise on the rin…
What Challenges Arise When Resharding and Rebalancing a Database?
Resharding, moving data to a new number of shards or a better key layout, is challenging because it must move large volumes of live data without downtime, keep…
What is a Master-Slave Replication Topology?
A master-slave replication topology has exactly one server (the master) accepting all writes, while one or more slave servers continuously receive and apply a…
What is a Master-Master Replication Topology?
A master-master (multi-master) replication topology lets two or more servers each accept writes independently, and every master streams its changes to every ot…
Synchronous vs Asynchronous Replication: What is the Difference?
Synchronous replication waits for at least one replica to confirm it received a write before the primary reports the transaction as committed, while asynchrono…
What Causes Replication Lag and How Do You Reduce It?
Replication lag is the delay between a write committing on the primary and that same write becoming visible on a replica, and it is typically caused by network…
What is Quorum-Based Replication for Reads and Writes?
Quorum-based replication requires a write to be acknowledged by a minimum number of replicas (W) and a read to consult a minimum number of replicas (R) out of…
Stored Procedures vs ORM: What Are the Trade-offs?
Stored procedures push logic and multi-statement operations into the database itself for performance and centralized control, while an ORM keeps logic in appli…
What Are Time-Series Databases and When Should You Use One?
A time-series database is a storage engine purpose-built for data points indexed by time, optimizing for high-volume append-only writes, time-range queries, an…
What is the Cache-Aside (Lazy-Loading) Caching Pattern?
Cache-aside is a caching pattern where the application code itself checks the cache first, and on a miss reads from the database, populates the cache with that…
Write-Through vs Write-Back Cache: What is the Difference?
A write-through cache writes to the cache and the underlying database synchronously as one operation before confirming success, while a write-back (write-behin…
What are the Main Cache Invalidation Strategies?
Cache invalidation removes or refreshes stale cached data using three common strategies: TTL-based expiration (entries auto-expire after a fixed time), explici…
Redis as a Cache vs a Primary Data Store: What Changes?
Using Redis as a cache means treating it as disposable, rebuildable-from-source data that the application never needs to survive as its only copy, whereas usin…
What are the Trade-offs of Caching Database Query Results?
Caching query results trades a risk of serving stale data and added system complexity for dramatically lower read latency and reduced load on the database, and…
How Does Blue-Green Deployment Apply to Databases?
Blue-green deployment for databases means maintaining two full environments — the live blue database and an idle green database with the new schema and data fu…
What is Two-Phase Commit for Distributed Transactions?
Two-phase commit (2PC) is a protocol that lets a coordinator get multiple independent database participants to agree on committing or aborting a single distrib…
What is the Saga Pattern in Microservices?
The Saga pattern manages a business transaction that spans multiple microservices by breaking it into a sequence of local transactions, where each step publish…
What is Eventual Consistency in Databases?
Eventual consistency is a consistency model where, after writes stop arriving, all replicas of a piece of data are guaranteed to converge to the same value eve…
Showing 24 of 296.