System Design Question and Approaches

rajeev rathor
Sep 2, 2018 · 3 min read

Point Remember for Design Question:

1. Extract and describe all features that must be in expected system and find out all expected features that good to have.
2. List out all possible Stack Holders of system.
3. Start from simple solution.
4. Think about load or traffic
5. Think about performance optimization
6. Scale system is another key term for design.
7. Find out the best fit database according to Data used in system.
8. If Relational Database used in system, then describe the database in terms of Keys, Mapping Tables, PL/SQL etc/.
9. Focus on functionality and exact Technology selection
10. Collect requirement in context of Data and Functionality, scalability of system.
11. Design Should be scalable.

12. Design should be configurable, modular and able to adapt change dynamically.
13. Never forget to describe negative and edge cases.
14. It is recommended, design should be fault tolerable and should handle failure cases.
15. Design should be deployable in production as much as possible.
16. Don't forget to optimization of different aspect and component to achieve performance.

Technology suggestions:

https://www.youtube.com/watch?v=UzLMhqg3_Wc

Note: relevant and justified of technologies selection is good for demonstration. But unnecessary usage of technology is not impressive.
Find the list of Technologies and tools that help to design all most all kind to problem design and high scale solutions.
1. Load Balancing
2. Caching
3. NO-SQL selection based of Data
4. Searching Techniques Elastic Search or Apache Solr
5. RDBMS for normalized data
6. Cluster management system
7. Data Partitioning and data Distribution based on data
8. MQs like KAFKA to handle load
9. Fault –Tolerable System
10. High Availability system, replication, clustering and Master-Slave architecture
11. Log Analyzer System for dashboard
12. Real-time Computation System Kafka Streaming with Spark as computation System
13. Deployment plan [Docker, Kubernates, AWS]
14. Optimization of individual components
15. Servers Selection
16. Channels for data flow.
17. CDN etc.
18. Authentication and Security System.
19. Never forget to explain problem using basic data structure.
20. Threading, Locking, Semaphores.
21. Modularize your application in term of UI, Layer, doa layer, service layer etc.
22. Notification and Communication system

Common System Design Question:

reference:

https://www.educative.io/collection/page/5668639101419520/5649050225344512/5668600916475904

https://www.interviewbit.com/problems/lru-cache/

  1. Design Uber/OLA Booking system.

2. Design Auto Complete or Search Suggestion feature of Google.
3. Design Dropbox functionality.
4. facebook or any chat message system
5. Web Crawler System Design
6. Twitter Trending Design
7. Design LRU cache
8. Design Distributed LRU cache.
9.
Design Vending machine
10. Design referral system (Promo code like Ola ride etc.).
11. Design RabbitMQ with multi threaded producer and consumers.
12. Design app that show top 10 most used emotive in whatsapp application at any point of time.
14. Design Auto-complete for any booking system.
15. How would you design a system to provide the top trending topcis in the last 5m/1hour/24hours. The most trending topic should appear first.
16. Write a Program for Dictionary which has functionality of lookup and insert.
17.
Design a job scheduler.
18. Design your own Thread pool or Executor service.
19. Design Sudo-ko game.
20. Design Online Auction application.
21. Design Online Game (card game)
22. Design a air traffic system have only one run-way and N number of planes request for take off and land.
23. Design Two lift system, Single Lift system for 10 Stories building.
24. Design Videos Streaming application [Netflix/Hotstar]
25. Design Online Reading system like Kindle, Safaribooks etc.

Common component for Design Online /e-commerce Application

Common Module for Ecommerce and Online System
1. User Registration System.
2. Authentication System (Role Based and OAuth)
3. Request Processing System.
4. Vendor Registration System
5. Inventory Maintain System
6. User Preference.
7. Allotments or Allocation
8. Booking System
9. Payment System
10. Billing System(Reports and all)
11. Feedback System
12. Communication and Mailing System
13. Coupon Or Offer Processing System
14. Offer Evaluation System
15. Referral/Promotional System.
16. Admin Dashboard
17. Customer Support System
18. Blocking System
19. Vendor and Client Rating system
20. Suggestion System

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade