Zero to Mastering Software Architecture

Design Modern Web-Scale Distributed Applications Like a Pro

Learn to design distributed systems for web-scale traffic following industry best practices and insights from real-world architectures

Design Modern Web-Scale Distributed Applications Like a Pro

Course Contents (What You’ll Learn)

1. Concurrency in Online Services
  1. Handling Concurrency in Online Services – Part 1 – (Transaction Isolation Levels) (preview)
  2. Handling Concurrency in Online Services – Part 2 – (Database Locks)
  3. Handling Concurrency in Online Services – Part 3 – (Concurrency Control Mechanisms)
2. Handling Database Growth
  1. Managing Database Growth – Part 1 – (Partitioning)
  2. Managing Database Growth – Part 2 – (Partitioning Strategies)
  3. Database Replication
  4. Dealing With Conflicts – Part 1 – (Multi-Master Write Conflicts)
  5. Dealing With Conflicts – Part 2 – (Synchronized Clocks for Ordering Events)
  6. Dealing With Conflicts – Part 3 – (CRDTs and OT)
  7. Leaderless Replication
3. Distributed Transactions
  1. Cross-Shard Distributed Transactions
  2. Non-blocking Distributed Transactions – (Saga Pattern)
  3. Two Phase Commit and Saga – Picking the Right Approach
  4. Application Level Sharding – Tweaking Code for Cross Shard Operations
  5. Cross Shard Transactions with Over a Million QPS – (Real-World Instance)
  6. Horizontally Scaling Relational Database Clusters – (Real-World Instance)
  7. Using a Distributed Database Solution to Handle Queries in a Relational Database Cluster
  8. Distributed SQL
  9. ACID Transactions in NoSQL Databases
  10. Summary
4. Design a Sports News and Streaming Service Like ESPN, Cricbuzz and Hotstar
  1. Overview
  2. Live Streaming (Core Feature in Services Like Twitch, YouTube, Facebook, Hotstar) – Part 1
  3. Live Streaming Service – Part 2 – (Infrastructure, Thundering Herd and Request Coalescing)
  4. Live Streaming Service – Part 3 – (Stream Validation in Real-time) (preview)
  5. Using a Message Broker as a Buffer in Stream Validation
  6. Message Broker Performance
  7. Persisting the Live Stream for Video-On-Demand Service
  8. Getting Our Infrastructure Ready for the Traffic Surge – Part 1 – (No Blind Spots and Injecting Chaos)
  9. Getting Our Infrastructure Ready – Part 2 – (Not Relying on Autoscaling and Other Strategies)
  10. Handling Production Traffic – (Throttling)
5. Video-on-demand Service/Module (Like Netflix, YouTube, HBO Max, Disney+)
  1. Video Delivery Architecture Part 1 – (Designing A Workflow)
  2. Video Delivery Architecture Part 2 – (Workflow Execution)
  3. Video Delivery Architecture Part 3 – (Delivering Content through Edge, Data Estimations)
  4. Designing User Profile with a Relational Data Model
  5. Storing Relationships in a Document-Oriented Database
6. Video/News Feed Service (Like Netflix Video Feed, Facebook News Feed)
  1. Designing the Video Recommendation Feed for the VOD Service Home Page – Part 1 – (Change Data Capture)
  2. Designing the Video Recommendation Feed for the VOD Service Home Page – Part 2 – (Creating a Recommendation Object)
7. Push Notifications Service (Like Facebook Notifications, YouTube Notifications)
  1. Notifying Viewers of the New Content
8. CMS – Content Management Service (Like New York Times, Medium, TechCrunch, Bloomberg, Cricbuzz)
  1. Picking the Right Data Model and Knowledge Graphs (preview)
  2. Designing Content Graph for our CMS – Part 1
  3. Designing Content Graph for our CMS – Part 2
  4. CMS Core Architecture
9. Distributed Content Search Service
  1. Picking the Right Data Store to Power our Application Search
  2. Search Architecture: Designing an Indexing Pipeline
  3. Storing our Data with an Inverted Index
  4. Distributed Search Behind the Scenes
  5. Real-time Search with Immutable Inverted Indices – Part 1
  6. Real-time Search with Immutable Inverted Indices – Part 2
10. User Subscription Payment Service (Like Netflix Payments, Cricbuzz Payments)
  1. Understanding the Online Card Payment Flow
  2. Designing the Distributed Payment Flow – Part 1 – (Saga Pattern)
  3. Designing the Distributed Payment Flow – Part 2 – (Event Sourcing)
  4. Event Ordering with Message Queue and Persisting Events
  5. Handling Duplicate Events, Ensuring Idempotency and CQRS Pattern
11. Weaving all the Services Together – Inter Microservice Communication
  1. Communication Between Different Platform Services
  2. Discovering Services in the Network
  3. Laying Up a Service Mesh and SideCar Pattern
  4. Handling the Interviews
  5. Designing Something, You’ve No Clue About – Part 1
  6. Designing Something, You’ve No Clue About – Part 2
  7. Future Content (Coming Soon)
  8. Epilogue
  9. Change log

You’ll have 5 years of access to the course content. Please read the FAQs below before making the purchase.

Who is this Course for?

This course is meant for software developers, architects, product managers, product owners, engineering managers, IT consultants and anyone who wants to understand how large-scale distributed systems like Facebook, Netflix, YouTube, ESPN, New York Times etc. work behind the scenes as well as design these services with an industry-oriented approach.

The course will be immensely helpful for you if you intend to prepare for a system design interview round for your job, are looking to design a web-scale distributed system at your workplace or want to make technologically informed decisions when working on a large-scale service as an engineering manager or a product owner.

Will this Course be Helpful In My Career Growth?

This course and the Zero to Mastering Software Architecture learning path (this course included) is the fastest way possible to master software architecture and the art of designing scalable distributed systems. As opposed to going through tons of articles, videos, books and whitepapers, you’ll find all the needed concepts in this learning path which will save you months, if not years, of your time.

I’ve spent a decade developing and managing distributed systems for the big guns in the industry and I’ve put that experience in the content. Investing in this course will significantly increase your knowledge in the domain, subsequently increasing your pay scale. I wish I had a similar learning product in the initial years of my career.

Are There Any Prerequisites to this Course?

This course assumes you are well acquainted with web architecture and cloud computing fundamentals. If not, check out the below courses and the Zero to Mastering Software Architecture learning path:
Web Application and Software Architecture 101
Cloud Computing 101 – Master the Fundamentals
Throughout this course (Design Modern Web-Scale Distributed Applications Like a Pro), when designing systems, you’ll find references to various concepts explained in my other above-stated courses. The system designs in this course have an industry-oriented approach leveraging cloud design patterns like Saga, CQRS, Throttling, etc. and implementation of other architectural concepts explained with several illustrations to help you understand the concepts better.

Why is this Course Text-based?

My courses are intentionally text-based. The text format of the course enables you to learn faster than the videos. Learning through reading is way faster than sitting through hours of videos. It is easy to take notes—no pausing the videos to take notes or screenshots of diagrams. You can always go back to specific topics immediately when you need them.

Also, my courses are frequently updated. New information is continually added. It is easy for me to update the text-based content as opposed to re-recording a video every time a tiny update needs to be made. Imagine that. It would be killing.

How Long Do I Have Access to the Course Content?

You will have up to five years of access to the course content from the date of purchase.

Why Aren’t You Offering Lifetime Access?

I would be happy to but cannot primarily due to two reasons:

1. I have significant recurring monthly expenses in the form of platform fees, hosting charges, marketing, international tax compliance and other maintenance costs. Offering lifetime access would significantly spike the price of the courses. In order to keep the content affordable, I had to time restrict access to the platform.

2. The content of my courses is continually updated besides the new content that is added. The software design and development domain continues to evolve and as it evolves the courses get updated accordingly. With my courses, you’ll stay on top of the latest developments in the domain. And, as you might have figured this demands continual time investment 🙂

I Have a Question. How Can I Get in Touch?

You can send in your queries at [email protected]. You can also send me a message on LinkedIn here.

Course author

Course Author

Hello there, I am Shivang. I have industry experience of more than ten years designing and developing scalable web systems, right from idea to production. I’ve designed, developed, and maintained code, as well as worked in the production support for systems receiving millions of hits every single day.

I’ve worked on large-scale web services for some of the industry giants in several domains, including E-commerce, Fintech, Telecom and Travel & Hospitality. My last job was at HP as a full-stack developer in their Technical Solutions – R&D team.

As an independent consultant, I’ve helped businesses build scalable services with fitting software design and technology. This included helping them improve their development processes resulting in better code quality, maximum test coverage, minimal bottlenecks, less technical debt and fewer bugs.

Here is my LinkedIn profile if you want to read more about my professional experience or want to say hello! Cheers!!

Zero to Mastering Software Architecture Learning Path

Check out the Zero to Mastering Software Architecture learning path . This unique learning path educates you step by step on software architecture, cloud infrastructure and distributed system design, starting right from zero. It takes you right from having no knowledge on the domain to making you a pro in designing web-scale distributed systems like YouTube, Netflix, ESPN and the like.

Student Reviews

Check out what those enrolled are saying about my courses here.

Check Out My Blog

I write about distributed systems, software architecture, cloud, system design and backend engineering in general on my blog scaleyourapp.com Check it out.