Category: Distributed Systems

Join me to stay up-to-date and get my new articles delivered to your inbox by subscribing here.

System Design Interview Topic: Consistency Patterns - January 26, 2023

Consistency patterns are a set of techniques used to ensure data consistency across distributed systems. They are used to ensure that data is consistent across multiple nodes in a distributed system and that any changes made to the data are propagated to all nodes in the system. There are several different types of consistency patterns, […]

Read more

System Design Interview Topic: Caching - January 26, 2023

Caching is a method of storing frequently-used data in an easily-retrievable format. It is used to improve the performance of applications by reducing the amount of data that must be retrieved from remote sources, such as databases or web services. A caching system typically consists of a cache server, which stores the data, and a […]

Read more

System Design Interview Topic: Availability - January 25, 2023

Availability is an important factor in system design, as it is the measure of how reliable a system is in providing services to its users. Availability is typically measured in terms of uptime, which is the amount of time a system is available to its users. Availability is a critical factor in system design, as […]

Read more

System Design Interview Topic: Load Balancers - January 25, 2023

Load balancers are a critical component of any distributed system, and understanding how they work is essential for any system design interview. Load balancers are used to distribute workloads across multiple computing resources, such as servers, in order to increase system performance and reliability. Load balancers are typically deployed in a network to provide a […]

Read more

Distributed Systems – Time Synchronization and Logical Clocks - August 29, 2022

A distributed edit-compile workflow 2143 < 2144 -> make doesn’t call compiler Lack of time synchronization result: a possible object file mismatch What makes time synchronization hard? Quartz oscillator sensitive to temperature, age, vibration, radiation Accuracy ~one part per million: one second of clock drift over 12 days The internet is: Asynchronous: arbitrary message delays […]

Read more

Distributed Systems – Remote Procedure Calls (RPCs) and Failures - August 19, 2022

Failures, from client’s perspective The cause of the failure is hidden from the client! At-Least-Once scheme Simplest scheme for handling failures Client stub waits for a response, for a while Response is an acknowledgement message from the server stub If no response arrives after a fixed timeout time period, then client stub re-sends the request […]

Read more

Distributed Systems – Network Communication and Remote Procedure Calls (RPCs) - June 20, 2022

The problem of communication A process on Host A wants to talk to the process on Host B A and B must agree on the meaning of the bits being sent and received at many different levels, including: How many volts is a 0 bit, a 1 bit? How does the receiver know which is […]

Read more

Helpful Resources for System Design Interviews - March 2, 2022

University Courses / Lectures Online Courses Research Papers Books YouTube Videos / Playlists Other Resources

Read more

1 2 3