Distributed System Design Bible

Detailed Course Curriculum

In this course, we are covering the following while designing different distributed systems.


URL Shortening Service - TinyURL Design

TinyURL is a URL shortening web service, which provides short aliases for redirection of long URLs.


Distributed Cache Design

This chapter deals with an important topic, which is the design of a distributed cache or, in other words, a distributed in-memory key-value store. A distributed cache is an extension of the traditional concept of cache used in a single computer. A distributed cache usually spans multiple computers. 


Twitter Design

Twitter is an online social networking service where users post and read short messages called "tweets". 


Ride-Sharing Service - Uber Design

Uber is an online ride-sharing service, or in other words, a sort of taxi service that connects riders or passengers to the drivers. Uber considers itself a marketplace where they try to match the supply with the demand where supply is the drivers, and the demand is the passengers looking for a trip.


Whatsapp Messenger Service Design

Whatsapp Messenger service allows users to send text and voice messages, make voice and video calls, and share images, documents, user locations, and other media. Here in this chapter, we will discuss the design of the basic features of the Whatsapp service.


Online Dating Service - Tinder Design

Tinder is an online dating application that allows users to anonymously swipe to like or dislike other profiles based on their pictures, a small bio, and common interests. It uses geosocial networking, which means that it shows profiles to the user for other users within a certain distance from the user. Once two users are matched, they can exchange messages.



Netflix Design

Netflix is an online video streaming service that offers online streaming of a library of movies and TV shows. The actual design of Netflix would be way complex than what we are going to discuss in this chapter. Here we will try to design the Netflix service based on the requirements discussed below. 


File Sharing Service - Dropbox Design

Dropbox is a cloud file storage service. It enables users to share the files across their devices and also with remote storage servers. It does that by allowing the users to create special folders on each of their computers or mobile devices, which the service then synchronizes so that it appears to be the same folder regardless of which device is used to view it. Files placed in this folder are typically accessible through a website and mobile/desktop apps. The files can also be easily shared with other users for viewing or collaboration.

 We will discuss the following



Distributed Message Queue System Design

This chapter deals with a very important topic which is the design of a distributed message queue system. Distributed Message Queue is also called Distributed Message Broker. A distributed message queue is a message-oriented middleware that supports sending and receiving messages between distributed applications, services, or systems.

 We will discuss the following.

  1. Components of Distributed Message Queue  2. Delivery Models in Distributed Message Queues  3. Types of Distributed Message Queues

  4. Purpose of Distributed Message Queues

 5. Requirements

Stripe Payment Gateway System Design

This chapter discusses the design of another significant distributed service that is used almost everywhere where money is involved. If you have read our previous chapters, we identified a component named billing service, but we didn't go into the detailed design of the billing service. This we are going to cover in this chapter. We will cover three different aspects of this billing service as follows:

  • Storing customers' payment information (e.g., credit card, or other similar payment information)
  • The payment processing to charge a customer
  • For a generic payment gateway service, how the money is transferred from a customer to a merchant in a secure and reliable manner
 We will discuss the following.

Youtube Videos:

Youtube: https://www.youtube.com/c/ThinkSoftware


Articles

Medium: https://thinksoftware.medium.com/