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.
We will discuss the following |
---|
|
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.
We will discuss the following |
---|
|
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.
We will discuss the following |
---|
|
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.
We will discuss the following |
---|
|
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.
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.
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
- Types of Databases | Criteria to select the best database in the System Design Interview
- Grokking the Product Design vs. System Design Interviews
- Stripe Payment Gateway System Design
- Robinhood Stock Exchange System Design - How to Receive Realtime Stock Updates
- How to best prepare for system design interviews
- Eventual Consistency vs. Strong Consistency - How to decide between the two
- Foundation of Distributed Systems Security - Symmetric Keys - Asymmetric Keys - Digital Certificates
- Google Drive System Design | Dropbox System Design | File Sharing Service System Design
- Distributed Systems Introduction | From Single Machine Application to Distributed Service
- Elevator System Design | Object Oriented System Design Interview Question
- How to tackle System Design Interview | Youtube System Design | Youtube Search System Design
- Tinder Microservices Architecture | Online Dating App System Design
- Parking Lot Design | Object Oriented Design Interview Question
- Whatsapp System Design | Chat Messaging Systems Design
- Grokking the Uber System Design Interview
- Design Twitter - Microservices Architecture
- System Design Twitter Search
- Distributed Cache System Design
- TinyURL System Design | URL shortner System Design
Articles
Medium: https://thinksoftware.medium.com/
- Design Twitter - Microservices Architecture of Twitter Service
- How to tackle System Design Interview of File Sharing Service like Dropbox or Google Drive
- Design TinyURL - URL Shortening Service
- Elevator System Design - A tricky technical interview question
- How to Ace Object-Oriented Design Questions like Parking Lot Design
-
Robinhood Backend System Design — How to Receive Realtime Stock Updates
-
How to Effectively Use Mock Interviews to Prepare for FAANG Software Engineering Interviews
Selecting the Best Database for Your System Design Interview