Zero to System Architecture

Designing Modern Web-Scale Distributed Services

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

Designing Modern Web-Scale Distributed Services

Course Content (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 lifetime access to the course content and will receive a certificate of completion after finishing the course. Additional taxes may apply at checkout based on your geographic location. Please review the FAQs below before making your purchase.

Who is this Course for?

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

The course will be helpful for your system design interview rounds, if you 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 web service as an engineering manager, product owner, or in a similar role.

Will this Course be Helpful In My Career Growth?

This course and the Zero to System Architecture learning path (this course included) is the most effective way to learn web services architecture and design, saving you months, if not more, of your time.

During the initial years of my career, I found the resources (primarily books) written by domain experts significantly overwhelming to comprehend. I looked for something that would help me understand web architecture in a simplified step-by-step way as opposed to getting lost in technical complexity. But I couldn't find it.

My courses serve precisely the same pain point. I wish I had a similar product in the initial years of my career.

Moreover, mastering web services architecture gives us an edge as a developer or in any role that entails technical decision-making. When implementing new features in our application, designing new modules from the bare bones, or when trying to scale our service, we can make better decisions by applying our architectural knowledge, saving ourselves or our employer a boatload of money. This skill will make you stand out amongst your peers.

Most internet companies today have an essential software design round in their interviews, regardless of whether you are an absolute beginner or someone with years of industry experience. This is primarily because they want you to be an individual contributor. They want you to take ownership of your work and be capable of designing and building software from the bare bones all by yourself, without relying on anyone for assistance.

The Zero to System Architecture learning path prepares you for just that, helping you get a grip on web services architecture. I've spent a decade working on large-scale distributed services for the big guns in the industry, going from idea to production, including building systems from scratch for myself, and I've put that experience into the content.

Investing in this course will significantly increase your knowledge in the domain, subsequently increasing your pay scale.

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 actively 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 an update needs to be made. Imagine that. It would be killing.

How Long Do I Have Access to the Course Content?

Lifetime. You can revisit the content anytime, at your own pace and even as the content is continually updated and expanded. Whether you're learning today or refreshing your knowledge years from now, the resources will always be available to you.

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 System Architecture Learning Path

Check out the Zero to System Architecture learning path (this course included) that educates you step by step on web architecture, cloud computing, the infrastructure supporting scalable web services and distributed system design, starting right from zero. This learning path helps you go from zero to confidently contributing to system design discussions at your workplace, making informed decisions with having a firm grasp on the fundamentals, regardless of your current role and experience level. Master system architecture and be an invaluable asset to your team.

Student Reviews

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

Check Out My articles

I write about distributed systems, software architecture, cloud, system design and backend engineering on my newsletter and blog. Do check them out as well.