user100DaysOfCode
CommunityDevTermsResources|Login

Loading

System Design Questions Roadmap

Join the 100 day System Design Questions coding challenge. Master System Design Questions with daily challenges, projects, and expert guidance.
Start coding today!

Day 1: Design a URL shortening service (eg: bitly)
Day 2: Design a scalable microservices architecture
Day 3: Design a content delivery network (CDN)
Day 4: Design a distributed file storage system (eg: Dropbox)
Day 5: Design a real-time multiplayer online game
Day 6: Design a video streaming service like YouTube
Day 7: Design a ride-sharing system (eg: Uber or Lyft)
Day 8: Design a social media feed system (eg: Facebook's news feed)
Day 9: Design a distributed messaging system
Day 10: Design a recommendation system (eg: Netflix's movie recommendations)
Day 11: Design a schema for a location-based service
Day 12: Design a schema for a logging and analytics system
Day 13: Design a RESTful API for a blog platform
Day 14: Design an event-driven architecture for microservices communication
Day 15: Design a system for versioning and backward compatibility of APIs
Day 16: Design an API rate limiting system
Day 17: Design a distributed cache for microservices
Day 18: Design a system for role-based access control (RBAC)
Day 19: Design a system for single sign-on (SSO)
Day 20: Design a system for encrypting and storing sensitive user data
Day 21: Design a distributed task queue system
Day 22: Design a system for job scheduling and execution
Day 23: Design a system for access control and audit logging
Day 24: Design a system for automated testing and test coverage analysis
Day 25: Design a system for canary releases and feature flags

Join the 100 day System Design Questions coding challenge. Master System Design Questions with daily challenges, projects, and expert guidance.
Start coding today!

Day 1 - Design a URL shortening service (eg: bitly)

A URL shortening service is a web-based tool that takes a long URL and converts it to a shorter URL. Additionally, users should be redirected from short URL to the original long URL.

Day 2 - Design a scalable microservices architecture

Design a scalable microservices architecture for a modern e-commerce platform. The platform needs to handle high traffic loads and support various functionalities such as user authentication, product catalog management, order processing, payment processing, and analytics. Consider factors such as fault tolerance, resilience, scalability, and ease of deployment in your design. Additionally, discuss how you would ensure communication between microservices, handle data consistency, and manage dependencies between services. Provide insights into the technologies, tools, and architectural patterns you would employ to build and deploy this microservices architecture effectively

Day 3 - Design a content delivery network (CDN)

Design a content delivery network (CDN) for a global video streaming service. The CDN should efficiently distribute video content to users worldwide while minimizing latency and maximizing performance. Consider factors such as geographic distribution, caching strategies, load balancing, fault tolerance, and security in your design. Discuss how you would handle edge caching, content replication, and dynamic content delivery. Additionally, address how you would optimize the CDN for different types of devices and network conditions. Provide insights into the technologies, protocols, and architectural principles you would utilize to build and manage this CDN effectively

Day 4 - Design a distributed file storage system (eg: Dropbox)

Design a distributed file storage system similar to Dropbox that allows users to store and share files across multiple devices and platforms. The system should be highly available, scalable, and fault-tolerant, capable of handling large amounts of data with efficient storage and retrieval mechanisms. Consider factors such as data replication, synchronization, access control, versioning, and encryption in your design. Discuss how you would handle file metadata, user authentication, and authorization. Additionally, address how you would ensure data consistency and integrity across distributed nodes. Provide insights into the technologies, protocols, and architectural patterns you would employ to build and deploy this distributed file storage system effectively.

Day 5 - Design a real-time multiplayer online game

Design a real-time multiplayer online game that supports a large number of concurrent players. The game should provide an engaging and immersive experience with low latency and high responsiveness. Consider factors such as game mechanics, networking, server infrastructure, client-server communication, and synchronization in your design. Discuss how you would handle player interactions, game state management, and cheating prevention. Additionally, address scalability, fault tolerance, and load balancing to accommodate varying player loads and ensure a seamless gaming experience. Provide insights into the technologies, protocols, and architectural patterns you would employ to build and deploy this real-time multiplayer online game effectively.

Day 6 - Design a video streaming service like YouTube

Design a video streaming service similar to YouTube that allows users to upload, view, share, and interact with videos. The service should support a large library of videos, accommodate a high volume of concurrent viewers, and provide a seamless viewing experience across various devices and network conditions. Consider factors such as content delivery, video transcoding, storage, user authentication, recommendation systems, and monetization options in your design. Discuss how you would handle video ingestion, content distribution, and user-generated content moderation. Additionally, address scalability, fault tolerance, and data privacy and security measures. Provide insights into the technologies, protocols, and architectural patterns you would employ to build and deploy this video streaming service effectively.

Day 7 - Design a ride-sharing system (eg: Uber or Lyft)

Design a ride-sharing system similar to Uber or Lyft that connects passengers with drivers for on-demand transportation services. The system should provide a seamless experience for both passengers and drivers, allowing passengers to request rides and drivers to accept and complete those requests efficiently. Consider factors such as real-time location tracking, route optimization, fare calculation, payment processing, and driver-passenger matching in your design. Discuss how you would handle user authentication, driver verification, and ratings/reviews for both passengers and drivers. Additionally, address scalability, fault tolerance, and surge pricing mechanisms to accommodate varying demand and ensure service availability. Provide insights into the technologies, protocols, and architectural patterns you would employ to build and deploy this ride-sharing system effectively.

Day 8 - Design a social media feed system (eg: Facebook's news feed)

Design a social media feed system similar to Facebook's news feed that displays personalized content to users based on their interests, connections, and activity. The system should provide a dynamic and engaging user experience, presenting a mix of posts, photos, videos, and other content types from friends, followed pages, and recommended sources. Consider factors such as content ranking algorithms, content freshness, user engagement metrics, and privacy settings in your design. Discuss how you would handle content ingestion, storage, retrieval, and distribution efficiently. Additionally, address scalability, fault tolerance, and caching strategies to handle large volumes of user-generated content and ensure low latency. Provide insights into the technologies, data models, and architectural patterns you would employ to build and deploy this social media feed system effectively.

Day 9 - Design a distributed messaging system

Design a distributed messaging system that allows for real-time communication between users across various devices and platforms. The system should support features such as one-to-one messaging, group messaging, multimedia messaging, and message delivery status tracking. Consider factors such as scalability, fault tolerance, message ordering, and message persistence in your design. Discuss how you would handle user authentication, message encryption, and access control to ensure data privacy and security. Additionally, address message routing, load balancing, and latency optimization to provide a seamless messaging experience. Provide insights into the technologies, protocols, and architectural patterns you would employ to build and deploy this distributed messaging system effectively.

Day 10 - Design a recommendation system (eg: Netflix's movie recommendations)

Design a recommendation system similar to Netflix's movie recommendation engine that provides personalized recommendations to users based on their viewing history, preferences, and behavior. The system should analyze user interactions with content, such as watching history, ratings, likes, and dislikes, to generate accurate and relevant recommendations. Consider factors such as recommendation algorithms, data collection, feature engineering, and model training in your design. Discuss how you would handle cold-start problems for new users and items, as well as data sparsity issues. Additionally, address scalability, real-time recommendation generation, and experimentation to continually improve recommendation quality. Provide insights into the technologies, machine learning models, and architectural patterns you would employ to build and deploy this recommendation system effectively.

Day 11 - Design a schema for a location-based service

This content is locked. Please login to view it

Day 12 - Design a schema for a logging and analytics system

This content is locked. Please login to view it

Day 13 - Design a RESTful API for a blog platform

This content is locked. Please login to view it

Day 14 - Design an event-driven architecture for microservices communication

This content is locked. Please login to view it

Day 15 - Design a system for versioning and backward compatibility of APIs

This content is locked. Please login to view it

Day 16 - Design an API rate limiting system

This content is locked. Please login to view it

Day 17 - Design a distributed cache for microservices

This content is locked. Please login to view it

Day 18 - Design a system for role-based access control (RBAC)

This content is locked. Please login to view it

Day 19 - Design a system for single sign-on (SSO)

This content is locked. Please login to view it

Day 20 - Design a system for encrypting and storing sensitive user data

This content is locked. Please login to view it

Day 21 - Design a distributed task queue system

This content is locked. Please login to view it

Day 22 - Design a system for job scheduling and execution

This content is locked. Please login to view it

Day 23 - Design a system for access control and audit logging

This content is locked. Please login to view it

Day 24 - Design a system for automated testing and test coverage analysis

This content is locked. Please login to view it

Day 25 - Design a system for canary releases and feature flags

This content is locked. Please login to view it

      Sponsor Us|Community|Blog|YoutubeCareersContact UsDisclaimerPrivacy PolicyTerms of Service
      Have Feedback or want to contribute? Email: hello[@]100DaysOfCode.io
      100DaysOfCode@2024