āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻŦāĻžāĻāĻ˛āĻž
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ° āĻŽā§āĻ˛āĻŋāĻ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛ā§ āĻ¨āĻŋā§ā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšā§ā§āĻā§āĨ¤
āĻāĻŽāĻŋ āĻ¸āĻžāĻā§āĻ¸ā§āĻ āĻāĻ°āĻŦā§ āĻ¯āĻāĻ¨ āĻāĻŽāĻžāĻ° āĻ¸āĻŦ āĻāĻĒāĻŋāĻ āĻ˛ā§āĻāĻž āĻšā§ā§ āĻ¯āĻžāĻŦā§ āĻ¤āĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻ°āĻž āĻāĻžāĻāĻ˛ā§ āĻāĻžāĻ¨ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§ āĻāĻ°āĻŦā§āĻ¨
[āĻāĻ āĻāĻŋāĻāĻā§āĻ°āĻŋā§āĻžāĻ˛ āĻāĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻā§ āĻŽā§āĻ˛āĻŋāĻ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛ā§āĻ° āĻ§āĻžāĻ°āĻŖāĻž āĻĻā§ā§āĻž]
[āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻāĻ āĻāĻ¨āĻā§āĻ¨ā§āĻ āĻĒā§ā§ āĻāĻžāĻ˛ā§ āĻ˛āĻžāĻā§, āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻāĻ˛ā§ āĻāĻŽāĻžāĻā§ āĻāĻĢāĻŋ āĻ¸ā§āĻĒāĻ¨āĻ¸āĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, https://www.buymeacoffee.com/lahin31]
āĻ¸ā§āĻāĻŋāĻĒāĻ¤ā§āĻ°
- Section 1: System Design
- Section 2: Database - SQL and NoSQL
- Section 3: Client Server Architecture
- Section 4: Reliability
- Section 5: Performance Metrics
- Section 6: Distributed System
- Section 7: Domain Name System
- Section 8: Functional and Non Functional Requirements
- Section 9: Back Of the Envelope Estimation
- Section 10: Stateful and Stateless Architecture
- Section 11: Proxy
- Section 12: REST API
- Section 13: Scalability
- Section 14: Database Sharding
- Section 15: Database Replication
- Section 16: Caching
- Section 17: Content Delivery Network
- Section 18: CAP Theorem
- [Section 19: Consistent Hashing] (āĻāĻ˛āĻŽāĻžāĻ¨)
- [Section 20: Distributed Messaging System] (āĻāĻ˛āĻŽāĻžāĻ¨)
- [Section 21: Design URL Shortener] (āĻāĻ˛āĻŽāĻžāĻ¨)
- [Section 22: Design a Rate Limiter] (āĻāĻ˛āĻŽāĻžāĻ¨)
- [Section 23: Design a Chat System] (āĻāĻ˛āĻŽāĻžāĻ¨)
- [Section 24: Design a Notification System] (āĻāĻ˛āĻŽāĻžāĻ¨)
- [Section 25: Design High Availability & Resilience System] (āĻāĻ˛āĻŽāĻžāĻ¨)
- [Section 26: How Discord Stores Trillions of Messages] (āĻāĻ˛āĻŽāĻžāĻ¨)
- [Section 27: How Grab stores and processes millions of orders daily] (āĻāĻ˛āĻŽāĻžāĻ¨)
- Section 28: Resources
Section 1: System Design
āĻāĻŽāĻ°āĻž āĻ¯āĻāĻ¨ āĻā§āĻ¨ āĻāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĄā§āĻā§āĻ˛āĻĒ āĻāĻ°āĻ¤ā§ āĻ¯āĻžāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻŽā§āĻ¨ā§ āĻāĻ˛āĻ¤ā§ āĻšā§, āĻ¤āĻžāĻ° āĻāĻžāĻ°āĻŖ āĻšāĻ˛ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§ āĻā§āĻ¨ āĻāĻ āĻ¸āĻŽā§ āĻĨā§āĻā§ āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻā§āĻ° āĻŽāĻžāĻ¨ā§āĻˇ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻĨāĻžāĻā§, āĻ¤āĻāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¯āĻžāĻ¤ā§ āĻĒā§āĻ°āĻā§āĻ° āĻ˛ā§āĻĄ āĻāĻžāĻ˛ā§āĻāĻžāĻŦā§ āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻā§āĻ¨ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻ¨ā§āĻāĻļāĻ¨ āĻ¨āĻˇā§āĻ āĻŦāĻž āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¨ā§āĻ¸ āĻĄāĻžāĻāĻ¨ āĻšāĻā§āĻž āĻāĻžā§āĻž āĻ¸ā§āĻāĻ¨ā§āĻ¯āĨ¤ āĻ¸ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻā§ āĻŦāĻ˛āĻž āĻšā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĄāĻŋāĻāĻžāĻāĻ¨āĨ¤
(āĻāĻ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻŽā§āĻ˛āĻ¤ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻāĻā§āĻāĻŋāĻ¨āĻŋā§āĻžāĻ°āĻŋāĻ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒā§āĻā§āĻ¤āĨ¤)
Section 2: Database - SQL and NoSQL
āĻāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĄā§āĻā§āĻ˛āĻĒ āĻāĻ°āĻžāĻ° āĻ¸āĻŽā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻ āĻ āĻ¨ā§āĻ¯āĻžā§ā§ āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻšā§āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĻā§āĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻŦā§āĻ¯āĻžāĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĨāĻžāĻāĻŋ - SQL(āĻ°āĻŋāĻ˛ā§āĻļāĻ¨āĻžāĻ˛) āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻāĻŦāĻ NoSQL(āĻ¨āĻ¨-āĻ°āĻŋāĻ˛ā§āĻļāĻ¨āĻžāĻ˛) āĻĄā§āĻāĻžāĻŦā§āĻ¸āĨ¤ āĻāĻŽāĻ°āĻž āĻā§āĻŽāĻ¨ āĻŦāĻž āĻā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻĄāĻžāĻāĻž āĻˇā§āĻā§āĻ° āĻāĻ°āĻ¤ā§ āĻāĻžāĻ, āĻāĻŋāĻāĻžāĻŦā§ āĻˇā§āĻā§āĻ° āĻāĻ°āĻ¤ā§ āĻāĻžāĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻĒā§āĻ°ā§ā§āĻāĻ¨ āĻ āĻ¨ā§āĻ¯āĻžā§ā§ āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻŦāĻžāĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻšā§āĨ¤ āĻĄāĻžāĻāĻžāĻ° āĻ§āĻ°āĻ¨ āĻ āĻ¨ā§āĻ¯āĻžā§ā§ āĻĄā§āĻāĻžāĻŦā§āĻ¸āĻā§āĻ˛ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻĻāĻŋā§ā§ āĻĨāĻžāĻā§āĨ¤
SQL | NoSQL |
---|---|
āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĄāĻžāĻāĻž āĻ¸ā§āĻā§āĻ° āĻāĻ°āĻž āĻšā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻžāĻ°āĻŋ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻŋāĻāĻŋ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ˛āĻžāĻŽ āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¨āĻŋāĻĻā§āĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĨ¤ āĻā§āĻŦāĻŋāĻ˛āĻā§āĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ relation āĻĨāĻžāĻā§āĨ¤ | āĻā§āĻ¨ āĻĒā§āĻ°āĻāĻžāĻ° relation āĻāĻžā§āĻž āĻĄāĻžāĻāĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻˇā§āĻā§āĻ° āĻāĻ°ā§ āĻĨāĻžāĻā§āĨ¤ āĻ¯ā§āĻŽāĻ¨āĻ key-value, graph, document āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤ |
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸ā§āĻāĻŋāĻŽāĻž āĻ āĻ¨ā§āĻ¯āĻžā§ā§ āĻĄāĻžāĻāĻž āĻ¸ā§āĻā§āĻ° āĻāĻ°āĻž āĻšā§āĨ¤ (āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸ā§āĻāĻŋāĻŽāĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻ¯āĻžā§āĨ¤) | NoSQL āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻĄāĻžāĻāĻ¨āĻžāĻŽāĻŋāĻ āĻ¸ā§āĻāĻŋāĻŽāĻž āĻĨāĻžāĻā§, āĻ āĻ°ā§āĻĨāĻžā§ āĻ¸ā§āĻāĻŋāĻŽāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ¯ā§āĻā§āĻ¯āĨ¤ |
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻĄā§āĻāĻžāĻŦā§āĻ¸
Section 3: Client Server Architecture
āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻŦā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§ āĻāĻŋāĻā§ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻāĻŋāĻĢ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻāĻ° āĻāĻ¨ā§āĻ¯, āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¸ā§āĻ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻĒāĻžāĻā§āĻžāĻ° āĻĒāĻ° āĻ¸ā§ āĻ¤āĻžāĻ° āĻ¯āĻžāĻŦāĻ¤ā§ā§ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻļā§āĻˇ āĻāĻ°ā§ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻāĻā§ āĻ°ā§āĻ¸āĻĒāĻ¨ā§āĻ¸ āĻĻāĻŋā§ā§ āĻĻāĻŋāĻŦā§, āĻāĻāĻŋ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°āĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŦ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĨāĻžāĻāĻŦā§ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§āĨ¤
Section 4: Reliability
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¯āĻĻāĻŋ āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° Fault/Error āĻĨāĻžāĻāĻžāĻ° āĻĒāĻ°āĻ āĻāĻžāĻ˛ā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŋāĻāĻŦāĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻ¯āĻĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻ¨āĻž āĻšā§, āĻ¤āĻŦā§ āĻ¸ā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ ReliableāĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻ¤ā§ āĻšāĻŦā§ āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ Fault āĻāĻ° āĻāĻžāĻ°āĻŖā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ Failure āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
Fault āĻāĻ°āĻāĻŽ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻā§āĻ¨ā§ user āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻā§ āĻāĻŽāĻ¨āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻā§ āĻ¯āĻžāĻ¤ā§ āĻā§āĻ¨ā§ Failure āĻšā§ā§ āĻā§āĻ˛, āĻ¸ā§āĻāĻž āĻāĻā§āĻāĻžāĻā§āĻ¤ āĻŦāĻž āĻ āĻ¨āĻŋāĻā§āĻāĻžāĻā§āĻ¤āĻāĻžāĻŦā§āĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻāĻ¨ āĻ¯āĻĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻ¨āĻž āĻšā§ā§ āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° Warning message āĻĻā§āĻāĻžāĻ˛ā§ āĻ¤āĻāĻ¨ āĻ¸ā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋāĻā§ āĻāĻŽāĻ°āĻž Reliable āĻŦāĻ˛āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻ°āĻŋāĻ˛āĻžāĻāĻŦāĻŋāĻ˛āĻŋāĻāĻŋ
Section 5: Performance Metrics
Throughput
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻŽā§ā§āĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻā§āĻ¨ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¯āĻ¤āĻā§āĻā§ āĻāĻžāĻ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¸ā§āĻāĻŋ āĻšāĻā§āĻā§ ThroughputāĨ¤ āĻ¯ā§āĻŽāĻ¨, āĻĒā§āĻ°āĻ¤āĻŋ ā§§ā§Ļ āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¯āĻĻāĻŋ ā§Ģā§Ļ āĻāĻŋ API request āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¤āĻžāĻšāĻ˛ā§ āĻ¤āĻžāĻ° Throughput āĻšāĻŦā§ ā§Ģā§Ļ/ā§§ā§Ļ = ā§ĢāĨ¤
Time to First Byte
āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ Resource āĻāĻ¨ā§āĻ¯ āĻ¯āĻāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§ Request āĻāĻ°ā§ āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĨā§āĻā§ FIRST BYTE of Response āĻ¯āĻāĻ¨ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§ āĻ¤āĻžāĻ° āĻŽāĻ§ā§āĻ¯āĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĻā§āĻā§ (Request āĻāĻ°āĻž āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻāĻŦāĻ FIRST BYTE āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻžāĻ° āĻ¸āĻŽā§ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤) āĻšāĻ˛ Time to First ByteāĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸
Section 6: Distributed System
āĻāĻāĻžāĻ§āĻŋāĻ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° (āĻŦāĻž āĻāĻŽā§āĻĒā§āĻ¨ā§āĻ¨ā§āĻ) āĻāĻāĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻĢāĻ˛ā§ āĻā§āĻ¨ āĻāĻžāĻ āĻļā§āĻˇ āĻšā§ āĻāĻŦāĻ End User āĻāĻ° āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° (āĻŦāĻž āĻāĻŽā§āĻĒā§āĻ¨ā§āĻ¨ā§āĻ) āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻ¸ā§, āĻ¸ā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻšāĻ˛ āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§āĻĄ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĨ¤ āĻāĻ āĻŽā§āĻļāĻŋāĻ¨āĻā§āĻ˛ā§āĻ¤ā§ āĻļā§ā§āĻžāĻ°ā§āĻĄ āĻ¸ā§āĻā§āĻ(Shared State) āĻĨāĻžāĻā§, āĻāĻā§āĻāĻžāĻ°ā§āĻ¨ā§āĻāĻ˛āĻŋ (Concurrently) āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ Information āĻļā§ā§āĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĨ¤
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻŽā§ā§ Distributed System āĻāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻ˛ YouTubeāĨ¤
YouTube āĻā§āĻ¨?
- āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° User āĻĨā§āĻā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻĒāĻžā§ Video Upload āĻāĻŋāĻāĻŦāĻž Video Watch āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
- āĻāĻŋāĻĄāĻŋāĻ āĻāĻ¨āĻā§āĻĄāĨ¤
- āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĨ¤
āĻāĻā§āĻ˛ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻŽāĻŋāĻ˛ā§ Distributed System YouTube āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤
Section 7: Domain Name System
Domain Name System āĻāĻŋāĻāĻŦāĻž DNS āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ Human Readable Domain (āĻ¯ā§āĻŽāĻ¨ www.google.com) āĻā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ IP-āĻ¤ā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ°ā§ URL āĻāĻžāĻāĻĒ āĻāĻ°ā§āĻ¨ (āĻ¯ā§āĻŽāĻ¨ www.google.com)āĨ¤ DNS āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻĻā§ā§āĻž URL āĻāĻ° IP Address āĻŦā§āĻ° āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻ¸ā§āĻ IP Address āĻ āĻāĻĒāĻ¨āĻžāĻ° āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻšāĻŦā§āĨ¤
āĻāĻ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻž āĻļā§āĻ°ā§ āĻšā§ DNS Resolver āĻĻāĻŋā§ā§,
- DNS Resolver āĻŽā§āĻ˛āĻ¤ Human Readable Domain āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ IP-āĻ¤ā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§ āĻĨāĻžāĻā§āĨ¤ āĻāĻ° ā§ŠāĻāĻŋ āĻĒāĻžāĻ°ā§āĻ āĻāĻā§,
- Root Server, āĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻŽā§āĻ˛āĻ¤ .com, .org, .net āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĻ° āĻ¤āĻĨā§āĻ¯ āĻ°āĻžāĻā§ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛ā§āĻ° IP āĻ¸ā§āĻ DNS Resolver āĻā§ āĻĻāĻŋā§ā§ āĻĨāĻžāĻā§ āĻ¯ā§āĻŽāĻ¨ .com āĻāĻ° āĻāĻ¨ā§āĻ¯ .com āĻāĻ° IP, .org āĻāĻ° āĻāĻ¨ā§āĻ¯ .org āĻāĻ° IP
- Top Level Domain Server, āĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻŽā§āĻ˛āĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ Top Level Domain (www.google.com āĻāĻ° TLD āĻšāĻ˛ .com) āĻāĻ° Authorititve Server āĻāĻ° āĻ¤āĻĨā§āĻ¯ āĻ¨āĻŋāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ°āĻžāĻā§āĨ¤
- Authorititve Server, āĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸ā§āĻ Human Readable Domain (āĻ¯ā§āĻŽāĻ¨ www.google.com) āĻāĻ° IP āĻĒāĻžāĻā§āĻž āĻ¯āĻžā§āĨ¤
Section 8: Functional and Non Functional Requirements
Functional Requirements
āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŋ āĻāĻŋ āĻāĻžāĻ āĻāĻ°ā§ āĻ¸ā§āĻāĻŋ Functional Requirement āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§ āĻĨāĻžāĻā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻ˛āĻž āĻ¯āĻžā§, āĻ¸ā§āĻļā§āĻ¯āĻžāĻ˛ āĻŽāĻŋāĻĄāĻŋā§āĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§,
- āĻĒā§āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯āĻžā§
- āĻĒā§āĻ¸ā§āĻā§ āĻ˛āĻžāĻāĻ āĻāĻ°āĻž āĻ¯āĻžā§
- āĻĒā§āĻ¸ā§āĻā§ āĻāĻŽā§āĻ¨ā§āĻ āĻāĻ°āĻž āĻ¯āĻžā§
- āĻĒā§āĻ¸ā§āĻā§ āĻĄāĻŋāĻ˛āĻŋāĻ āĻāĻ°āĻž āĻ¯āĻžā§
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻž āĻšāĻā§āĻā§ āĻāĻ āĻāĻāĻāĻŋ Functional RequirementāĨ¤
Non Functional Requirements
āĻāĻāĻŋ āĻŽā§āĻ˛āĻ¤ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻā§āĻŖāĻŽāĻžāĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻ¤āĻž (Quality Characteristics), āĻāĻĻāĻžāĻšāĻ°āĻŖ:
- Performance
- Security
- Cost
- Scalability
- Reliability
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻž āĻšāĻā§āĻā§ āĻāĻ āĻāĻāĻāĻŋ Non Functional RequirementāĨ¤
Section 9: Back Of the Envelope Estimation
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻāĻ¨āĻŋāĻ āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ°āĻā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ° Constraints (Load Balancer, CDN) āĻā§āĻ˛ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§ āĻāĻŋ āĻ¨āĻž āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ āĻ§āĻžāĻ°āĻ¨āĻž āĻšāĻŋāĻ¸āĻžāĻŦ āĻāĻ°ā§ āĻŦāĻ˛ā§ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
Section 10: Stateful and Stateless Architecture
Stateful
āĻāĻ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§ āĻĄā§āĻāĻž Store āĻāĻŦāĻ Maintain Application āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻšā§ā§ āĻĨāĻžāĻā§āĨ¤ FTTP āĻšāĻ˛ StatefulāĨ¤
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻā§āĻŦāĻ¨ā§ Stateful āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ° āĻāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻ˛ Web SocketāĨ¤ Web Socket āĻŽā§āĻ˛āĻ¤ bidirectional, full-duplex protocolāĨ¤ āĻāĻāĻžāĻ¨ā§ Server āĻĄā§āĻāĻž store āĻāĻ°ā§ āĻ°āĻžāĻā§, āĻ¯āĻžāĻ¤ā§ Client āĻ¸āĻŦāĻ¸āĻŽā§ Server āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻĒāĻžā§āĨ¤
Stateless
āĻāĻ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§ āĻĄā§āĻāĻž Store āĻāĻŦāĻ Maintain Application āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻšā§ āĻ¨āĻž āĻŦāĻ°āĻ āĻā§āĻ¨ā§ Database āĻŦāĻž Cache āĻ āĻ¸ā§āĻā§āĻ° āĻāĻŦāĻ āĻŽā§āĻāĻ¨āĻā§āĻāĻ¨ āĻšā§āĨ¤ HTTP āĻšāĻ˛ StatelessāĨ¤
HTTP āĻ¸āĻŦāĻ¸āĻŽā§ Stateless Architecture, āĻāĻžāĻ°āĻŖ āĻā§āĻ¨ā§ protected resource āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻŦāĻ¸āĻŽā§ request āĻāĻ°āĻžāĻ° āĻ¸āĻŽā§ cookie/token āĻ¸āĻžāĻĨā§ āĻĻāĻŋāĻ¤ā§ āĻšā§āĨ¤ server āĻāĻāĻ¨ā§ cookie/token āĻ¸ā§āĻā§āĻ° āĻāĻ°ā§ āĻ°āĻžāĻā§ āĻ¨āĻžāĨ¤
Section 11: Proxy
āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻ¯āĻāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻ¸āĻŽā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻ¨āĻž āĻāĻ°ā§ āĻ āĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻ˛ā§, āĻ¸ā§āĻ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻšāĻā§āĻā§ āĻĒā§āĻ°āĻā§āĻ¸āĻŋ āĻāĻŦāĻ āĻ¯ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĻāĻŋā§ā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻŦā§ āĻ¸ā§āĻāĻž āĻšāĻā§āĻā§ āĻĒā§āĻ°āĻā§āĻ¸āĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĨ¤
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻā§āĻŦāĻ¨ā§ āĻĒā§āĻ°āĻā§āĻ¸āĻŋāĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻā§āĻā§ NGINXāĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻĒā§āĻ°āĻā§āĻ¸āĻŋ
Section 12: REST Api
REST Api āĻāĻžāĻ¨āĻžāĻ° āĻĒā§āĻ°ā§āĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻāĻ¤ā§ āĻšāĻŦā§ āĻ°ā§āĻ¸ā§āĻ(REST) āĻŽāĻžāĻ¨ā§ āĻāĻŋ, REST āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ Representational State Transfer āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§ āĻĻāĻžā§āĻžā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°āĻžāĻ˛ āĻ¸ā§āĻāĻžāĻāĻ˛ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšā§ āĻ¸ā§āĻā§āĻ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ° āĻāĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻāĻāĻ¨ REST Api āĻšāĻ˛, āĻāĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻŋāĻāĻ āĻāĻ¨āĻā§āĻ¨āĻļāĻ¨ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšā§ āĻĻā§āĻāĻŋ āĻāĻ¨ā§āĻĄ(āĻ¯ā§āĻŽāĻ¨āĻ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻāĻŦāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°) āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸ā§āĻā§āĻ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ° āĻāĻ°āĻžāĻā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
āĻ¸ā§āĻā§āĻ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ° āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻŋāĻā§ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻ HTTP Methods āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšā§, GET, POST, PUT, PATCH & DELETE, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽā§āĻ¯āĻžāĻĨā§āĻĄā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻžāĻ¨āĻ¤ā§ REST Api āĻ¸ā§āĻāĻļāĻ¨ā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨āĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻ°ā§āĻ¸ā§āĻ āĻāĻĒāĻŋāĻāĻ
Section 13: Scalability
āĻ¸ā§āĻā§āĻ˛ā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻā§āĻˇāĻŽāĻ¤āĻžāĻā§ āĻŦā§āĻāĻžā§ āĻ¯āĻāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻŦāĻžā§āĻ¤ā§ āĻĨāĻžāĻā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻ˛āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻāĻāĻŋ āĻā§ā§āĻŦāĻ¸āĻžāĻāĻā§āĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻāĻāĻ¨ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ āĻĨā§āĻā§ ā§Ģ āĻŽāĻžāĻ¸ āĻĒāĻ° āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ ā§¨ āĻā§āĻŖ āĻšā§ā§ āĻā§āĻ˛ āĻ¤āĻžāĻ° āĻ āĻŋāĻ āĻāĻ°āĻ ā§Ģ āĻŽāĻžāĻ¸ āĻĒāĻ° āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ ā§Ē āĻā§āĻŖ āĻšā§ā§ āĻā§āĻ˛, āĻāĻāĻāĻž āĻ¸āĻŽā§ āĻĻā§āĻāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¤ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻ˛ā§āĻĄ āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°āĻā§ āĻ¨āĻž, āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ˛ āĻāĻ°āĻžāĻā§ āĻ¸ā§āĻā§āĻ˛ā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ āĻŦāĻ˛ā§āĨ¤
āĻ¸ā§āĻā§āĻ˛ā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ 2 āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ°, āĻāĻžāĻ°ā§āĻāĻŋāĻāĻžāĻ˛ āĻ¸ā§āĻā§āĻ˛ā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ (Vertical Scalability) āĻāĻŦāĻ āĻšāĻ°āĻžāĻāĻāĻ¨ā§āĻāĻžāĻ˛ āĻ¸ā§āĻā§āĻ˛ā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ (Horizontal Scalability)āĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻ¸ā§āĻā§āĻ˛ā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ
Section 14: Database Sharding
Horizontal Scaling āĻā§ Sharding āĻŦāĻ˛ā§āĨ¤ Database Sharding āĻšāĻ˛ āĻā§āĻŦāĻŋāĻ˛ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻĒā§āĻĨāĻ āĻāĻ°āĻžāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻ˛āĻž āĻ¯āĻžā§, āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻĄā§āĻāĻž/row āĻ¯āĻĻāĻŋ āĻŦāĻžā§āĻ¤ā§ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāĻ¤ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻĄā§āĻāĻž/row āĻŦā§ā§ā§ āĻā§āĻ˛ āĻ¯āĻžāĻ° āĻĢāĻ˛ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻā§āĻŦāĻŋāĻ˛ā§ āĻāĻ° āĻ¸ā§āĻā§āĻ° āĻāĻ°āĻž āĻ¯āĻžā§ āĻ¨āĻž āĻ¤āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻĄā§āĻāĻžāĻā§āĻ˛ā§āĻā§ āĻŽā§āĻ˛ āĻā§āĻŦāĻŋāĻ˛ āĻĨā§āĻā§ āĻĒā§āĻĨāĻ āĻāĻ°ā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ shard āĻā§āĻŦāĻŋāĻ˛ā§ distribute āĻāĻ°ā§ āĻ°āĻžāĻāĻŋ āĻ¸ā§āĻāĻžāĻ Database ShardingāĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻ¸āĻžā§°ā§āĻĄāĻŋāĻ
Section 15: Database Replication
Database Replication āĻāĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° Strategy, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ Master Database āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻŋāĻāĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ Slave Database āĻĨāĻžāĻāĻŦā§āĨ¤ Master Database āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ Insert, Delete āĻāĻŦāĻ Update āĻāĻ° āĻāĻžāĻ āĻšāĻŦā§ āĻāĻŦāĻ Slave Database āĻŽāĻ§ā§āĻ¯ā§ Master Database āĻāĻ° āĻĄā§āĻāĻžāĻā§āĻ˛ā§āĻ° Copy āĻĨāĻžāĻāĻŦā§ āĻāĻŦāĻ āĻ¤āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻļā§āĻ§ā§ Read Operation āĻšāĻŦā§āĨ¤
Database Replication, SQL āĻāĻŦāĻ NoSQL āĻĻā§āĻāĻŋ āĻĄā§āĻāĻžāĻŦā§āĻ¸ā§ āĻāĻ°āĻž āĻ¯āĻžā§āĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻ°ā§āĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨
Section 16: Caching
Caching āĻāĻāĻāĻŋ āĻā§āĻļāĻ˛ āĻ¯āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻā§āĻ¨ Expensive Response'āĻā§ āĻā§āĻ¨ā§ āĻŽā§āĻŽā§āĻ°āĻŋāĻ¤ā§ āĻ°āĻžāĻāĻž āĻšā§, āĻ¯āĻžāĻ¤ā§ āĻŦāĻžāĻ° āĻŦāĻžāĻ° āĻāĻ¸āĻž āĻ¸ā§āĻ āĻ°ā§āĻ¸ā§āĻĒāĻ¨ā§āĻ¸ā§āĻ° āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻā§ āĻĻā§āĻ°ā§āĻ¤ āĻ°ā§āĻ¸āĻĒāĻ¨ā§āĻ¸āĻāĻŋ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻŽā§āĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ (āĻ¯ā§āĻŽāĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸) āĻšāĻŋāĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻā§āĻ¯āĻžāĻļāĻŋāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻŦā§āĨ¤ āĻāĻ¤ā§ āĻāĻ°ā§ āĻ¯ā§ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻā§āĻā§ āĻšāĻŦā§,
- Read API āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ Fast āĻšāĻŦā§
- Latency Reduce āĻšāĻŦā§
- Fault Tolarence āĻāĻ° āĻā§āĻāĻāĻŋ āĻāĻŽāĻŦā§
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻā§āĻ¯āĻžāĻļāĻŋāĻ
Section 17: Content Delivery Network
Content Delivery Network āĻ āĻĨāĻŦāĻž CDN, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻā§āĻ˛āĻŋāĻ āĻāĻ° āĻāĻ¸ā§āĻĒāĻžāĻļā§ āĻĨāĻžāĻā§, āĻ¯āĻžāĻ¤ā§ āĻāĻŽāĻ°āĻž āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ¤ āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻāĻ¨ā§āĻā§āĻ¨ā§āĻāĻāĻŋ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ JS, CSS, Images āĻāĻŋāĻāĻŦāĻž VideosāĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° CDN āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¯āĻĻāĻŋ India āĻ¤ā§ āĻĨāĻžāĻā§ āĻāĻ° āĻāĻŽāĻ°āĻž Bangladesh āĻĨā§āĻā§ content request āĻāĻ°āĻŋ āĻ¤āĻžāĻšāĻ˛ā§ āĻā§āĻŦ āĻ¤āĻžā§āĻžāĻ¤āĻžā§āĻŋ content āĻĒāĻžāĻŦāĨ¤ āĻāĻžāĻ°āĻŖ āĻ¤āĻāĻ¨ Latency āĻāĻŽā§ āĻ¯āĻžāĻŦā§āĨ¤ āĻāĻ° āĻāĻŽāĻ°āĻž Bangladesh āĻĨā§āĻā§ England-āĻ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻŽā§āĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻā§, āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻ¨āĻā§āĻ¨ā§āĻ āĻāĻ° āĻāĻ¨ā§āĻ¯ request āĻāĻ°āĻ˛ā§ Latency āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻžāĻŦā§ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻŦā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻĻā§āĻ āĻĻā§āĻļā§āĻ° āĻĻā§āĻ°āĻ¤ā§āĻŦ āĻŦā§āĻļāĻŋāĨ¤
āĻ¯ā§ āĻ¯ā§ āĻ˛ā§āĻā§āĻļāĻ¨ā§ CDN āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻā§ āĻ¸ā§āĻ āĻ˛ā§āĻā§āĻļāĻ¨āĻā§āĻ˛ā§āĻā§ Point of Presence āĻŦāĻž PoP āĻŦāĻ˛ā§āĨ¤ āĻ¯ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° PoP āĻāĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻĨāĻžāĻā§ āĻ¤āĻžāĻā§ Edge Server āĻŦāĻ˛ā§āĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻāĻ¨āĻā§āĻ¨ā§āĻ āĻĄā§āĻ˛āĻŋāĻāĻžāĻ°āĻŋ āĻ¨ā§āĻāĻā§āĻžāĻ°ā§āĻ
Section 18: CAP Theorem
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻĒā§āĻ āĻ¯āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻāĻž āĻ¯āĻžā§ āĻāĻāĻāĻŋ Distributed Database System āĻ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻĒā§āĻ°ā§āĻĒāĻžāĻ°ā§āĻāĻŋ āĻĨā§āĻā§ āĻĻā§āĻāĻāĻŋ āĻĒā§āĻ°ā§āĻĒāĻžāĻ°ā§āĻāĻŋ āĻŽā§āĻ¨ā§ āĻāĻ˛āĻŦā§āĨ¤
- C āĻŽāĻžāĻ¨ā§ Consistency
- A āĻŽāĻžāĻ¨ā§ Availability
- P āĻŽāĻžāĻ¨ā§ Partition Tolerance
Consistency āĻšāĻā§āĻā§ āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸ā§āĻāĻļāĻ¨ (Transection) āĻļā§āĻˇ āĻšāĻā§āĻžāĻ° āĻĒāĻ° āĻ¸āĻŦ āĻ¨ā§āĻĄā§ āĻ¸āĻŦāĻ¸āĻŽā§ consistent āĻŦāĻž āĻāĻāĻ value āĻĨāĻžāĻāĻŦā§āĨ¤
Availability āĻŽāĻžāĻ¨ā§ āĻšāĻā§āĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ read āĻāĻŦāĻ write āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻšā§ āĻĒā§āĻ°āĻ¸ā§āĻ¸(process) āĻšāĻŦā§ āĻ¨āĻž āĻšā§ āĻā§āĻ¨ā§ message āĻĒāĻžāĻŦā§ āĻ¯ā§ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨(request) āĻĒā§āĻ°āĻ¸ā§āĻ¸(process) āĻšāĻā§āĻā§ āĻ¨āĻžāĨ¤
Partition Tolerance āĻšāĻā§āĻā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻ¨ā§āĻĄ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ¨ā§āĻāĻļāĻ¨(connection) āĻ¨āĻˇā§āĻ āĻšāĻ˛ā§āĻ, read āĻāĻŦāĻ write āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻšāĻŦā§āĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻā§āĻ¯āĻžāĻĒ āĻĨāĻŋāĻāĻ°āĻžāĻŽ