Join me to stay up-to-date and get my new articles delivered to your inbox by subscribing here.
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, […]
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 […]
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 […]
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 […]
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 […]
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 […]
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 […]
University Courses / Lectures Online Courses Research Papers Books YouTube Videos / Playlists Other Resources