System Design For Starting Up In One Shot 🔥

Published: 30 November 2022
on channel: Priyanshu Gupta
1,864
113

🎥 In this video, I will go in-depth on how to design a growable, scalable and robust system.
✴️ Instead of creating a distributed system from starting, we will start from a Monolith service and design it in such a way that it is highly growable and can be easily broken into microservices.
✴️ We will explore various ways to design the system and try to find the best way for a particular use case.
✴️ We will start by designing the monolith service with a very naive approach with minimal resources and will try to enhance the system progressively.
✴️ In this video in order to cover as many topics/concepts, I have taken an example of designing a Social App(like Instagram and Linkedin).
✴️ Initially, one monolith service will be responsible for all functionalities - Authentication, Posts, Likes, Notifications, User feed and Payments. Slowly we will try to make the system fast and scalable using vertical/horizontal scaling which will be accompanied by adding more components in the system including Message Brokers, Webservers, Reverse Proxy, Load Balancers, Background workers, Cache etc.
✴️ Also, we will try to cover each and every edge case while designing any service.
✴️ Will try to make a robust payment system by keeping every edge case possible in mind.
✴️ We will see when and how to use Database Transactions and Database Locks.

This video involves the following components(in a sequenced fashion) -
0:00 Intro
3:30 Listing Features
7:10 DB Design
25:20 High-Level Design
33:00 Authentication(this part is important to understand Single Sign On)
41:53 Enabling WebSockets for notification functionality and understanding webservers and reverse proxy
49:25 Designing User feed with a naive approach
58:53 Designing a Robust Payment system
1:10:20 Understanding queue message acknowledgement, Idempotent tasks, Transactions & Database Locks
1:25:06 Designing a Notification System(also includes SSO application)
1:40:31 Packaging service using Docker and horizontal scaling and separating out the required components(and also adding Load Balancing)
1:52:26 Adding a new independent service and using SSO for authentication and Understanding traffic routing and load balancing to distributed services
1:55:55 Horizontally Scaling Websocket Server(Notification)
2:00:16 Moving to Gateway
2:02:00 Enhancing Userfeed service and scaling it
2:12:18 Future Scope

👉 Ask your queries in the comment section box
Links -
💻 Discord:   / discord  
📸 Instagram:   / priyanshu._gupta  
✈ Telegram: https://t.me/priyanshuguptaofficial

⭐️ In case anyone wants a doubt or a 1:1 mentorship session, feel free to book it on my calendar -
https://topmate.io/priyanshugupta


👉 SUBSCRIBE to get more free tutorials, courses and code snippets!
   / @priyanshuguptaofficial  


✨ Keywords
System Design For Starting Up
Microservices
Microservice Architecture
Message Brokers
Notification System Design
Instagram System Design
Linkedin System Design
Message Brokers
Single Sign On Authentication
Monolith to microservices
Loadbalancer
Payment System Design

#systemdesign #microservices


Watch video System Design For Starting Up In One Shot 🔥 online without registration, duration hours minute second in high quality. This video was added by user Priyanshu Gupta 30 November 2022, don't forget to share it with your friends and acquaintances, it has been viewed on our site 1,864 once and liked it 113 people.