Join me to stay up-to-date and get my new articles delivered to your inbox by subscribing here.
Throughput is a measure of how much data can be processed in a given amount of time. It is typically measured in bits per second (bps) or bytes per second (Bps). Throughput is an important measure of system performance, as it determines how quickly a system can process data. When designing a system, it is […]
Stateful architecture is a type of architecture in which the server stores information about the client’s session and the client’s state. This means that the server can remember the client’s previous requests and responses, allowing it to respond to the client’s requests more quickly and accurately. Stateless architecture is a type of architecture in which […]
SQL vs NoSQL is a comparison between two different types of databases. SQL (Structured Query Language) is a relational database management system (RDBMS) that uses a structured query language to store and manipulate data. NoSQL (Not only SQL) is a non-relational database management system (NoSQL DBMS) that uses a non-structured query language to store and […]
Scalability is the ability of a system to handle an increasing amount of work, or its potential to be enlarged to accommodate that growth. It is an important factor to consider when designing a system, as it can determine the system’s ability to handle increased workloads, as well as its ability to adapt to changing […]
Redundancy and replication are two important concepts in system design. Redundancy is the duplication of critical components or functions of a system with the intention of increasing the reliability of the system. Replication is the duplication of data or other resources in order to increase availability and fault tolerance. Redundancy is used to increase the […]
Latency is the amount of time it takes for a request to be processed and a response to be received. It is a measure of the delay between when a request is made and when a response is received. Latency can be affected by a variety of factors, including network congestion, hardware limitations, and software […]
Distributed transactions are transactions that involve multiple systems or components that must all succeed or fail together. They are used to ensure data integrity and consistency across multiple databases, applications, or services. Distributed transactions are complex and require careful design and implementation. The following topics can be used to discuss distributed transactions in a system […]
Data partitioning is a process of dividing a large dataset into smaller, more manageable chunks. This process is used to improve the performance of data-intensive applications, such as databases and distributed systems. Data partitioning can be done in a variety of ways, including by size, range, hash, or by random. Each method has its own […]
A Content Delivery Network (CDN) is a system of distributed servers (network) that deliver web content to a user based on their geographic location. The goal of a CDN is to provide faster delivery of content to users by caching content in multiple locations around the world. The system is composed of a number of […]
Consistent hashing is a technique used in computer programming to evenly distribute data across a cluster of nodes. It is used to ensure that data is spread out evenly across the nodes in a cluster and that the data is not concentrated in one node. The basic idea behind consistent hashing is to assign each […]