āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ° āĻŽā§āĻ˛āĻŋāĻ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛ā§ āĻ¨āĻŋā§ā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšā§ā§āĻā§āĨ¤
āĻāĻŽāĻŋ āĻ¸āĻžāĻā§āĻ¸ā§āĻ āĻāĻ°āĻŦā§ āĻ¯āĻāĻ¨ āĻāĻŽāĻžāĻ° āĻ¸āĻŦ āĻāĻĒāĻŋāĻ āĻ˛ā§āĻāĻž āĻšā§ā§ āĻ¯āĻžāĻŦā§ āĻ¤āĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻ°āĻž āĻāĻžāĻāĻ˛ā§ āĻāĻžāĻ¨ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻāĻ°āĻŦā§āĻ¨
āĻāĻ āĻāĻŋāĻāĻā§āĻ°āĻŋā§āĻžāĻ˛ āĻāĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻā§ āĻŽā§āĻ˛āĻŋāĻ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛ā§āĻ° āĻ§āĻžāĻ°āĻŖāĻž āĻĻā§ā§āĻžāĨ¤ āĻāĻžāĻ˛ā§ āĻ˛āĻžāĻāĻ˛ā§ star, watch āĻāĻŋāĻāĻŦāĻž fork āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§ āĻ°āĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
- Section 1: System Design
- Section 2: Database Engineering
- Section 3: Client Server Architecture
- Section 4: Reliability
- Section 5: Performance Metrics
- Section 6: Distributed System
- Section 7: Domain Name System
- Section 8: Transmission Control Protocol
- Section 9: User Datagram Protocol
- Section 10: HTTP, TLS and HTTPS
- Section 11: What happens when you type a URL in your browser
- Section 12: High Concurrency Control
- Section 13: Functional and Non Functional Requirements
- Section 14: Back Of the Envelope Estimation
- Section 15: Authentication and Authorization
- Section 16: Stateful and Stateless Architecture
- Section 17: Proxy
- Section 18: REST API
- Section 19: Scalability
- Section 20: Database Sharding
- Section 21: Database Replication
- Section 22: Caching
- Section 23: Content Delivery Network
- Section 24: Rate Limiter
- Section 25: CAP Theorem
- [Section 26: Consistent Hashing] (āĻāĻ˛āĻŽāĻžāĻ¨)
- Section 27: Polling, Web Socket and Server-Sent Events
- Section 28: Message Queue
- [Section 29: rpc, gRpc] (āĻāĻ˛āĻŽāĻžāĻ¨)
- Section 30: Single Sign-On
- Section 31: Elasticsearch
- Section 32: Bloom Filter
- [Section 33: Load Balancing Algorithms] (āĻāĻ˛āĻŽāĻžāĻ¨)
- [Section 34: How Live Streaming works] (āĻāĻ˛āĻŽāĻžāĻ¨)
- Section 35: How OAuth2 works
- [Section 36: Serverless Architecture] (āĻāĻ˛āĻŽāĻžāĻ¨)
- Section 37: High Availability best practices by Netflix
- Section 38: Resources
āĻāĻŽāĻ°āĻž āĻ¯āĻāĻ¨ āĻā§āĻ¨ āĻāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĄā§āĻā§āĻ˛āĻĒ āĻāĻ°āĻ¤ā§ āĻ¯āĻžāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻŽā§āĻ¨ā§ āĻāĻ˛āĻ¤ā§ āĻšā§, āĻ¤āĻžāĻ° āĻāĻžāĻ°āĻŖ āĻšāĻ˛ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§ āĻā§āĻ¨ āĻāĻ āĻ¸āĻŽā§ āĻĨā§āĻā§ āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻā§āĻ° āĻŽāĻžāĻ¨ā§āĻˇ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻĨāĻžāĻā§, āĻ¤āĻāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¯āĻžāĻ¤ā§ āĻĒā§āĻ°āĻā§āĻ° āĻ˛ā§āĻĄ āĻāĻžāĻ˛ā§āĻāĻžāĻŦā§ āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻā§āĻ¨ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻ¨ā§āĻāĻļāĻ¨ āĻ¨āĻˇā§āĻ āĻŦāĻž āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¨ā§āĻ¸ āĻĄāĻžāĻāĻ¨ āĻšāĻā§āĻž āĻāĻžā§āĻž āĻ¸ā§āĻāĻ¨ā§āĻ¯āĨ¤ āĻ¸ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻā§ āĻŦāĻ˛āĻž āĻšā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĄāĻŋāĻāĻžāĻāĻ¨āĨ¤
(āĻāĻ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻŽā§āĻ˛āĻ¤ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻāĻā§āĻāĻŋāĻ¨āĻŋā§āĻžāĻ°āĻŋāĻ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒā§āĻā§āĻ¤āĨ¤)
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽā§ āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻā§āĻŦāĻ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻŦāĻŋāĻˇā§āĨ¤ āĻā§āĻ¨ āĻā§āĻ¨ āĻ°āĻāĻŽā§āĻ° āĻāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¨ āĻā§āĻ¨ āĻ°āĻāĻŽā§āĻ° āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨, āĻĄā§āĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ° āĻā§āĻŽāĻ¨, āĻā§āĻŦāĻŋāĻ˛ āĻāĻ˛āĻžāĻŽ āĻāĻ° āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ, āĻā§āĻŦāĻŋāĻ˛ size āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻāĻžāĻ¨āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻĻāĻ°āĻāĻžāĻ°āĨ¤
āĻāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĄā§āĻā§āĻ˛āĻĒ āĻāĻ°āĻžāĻ° āĻ¸āĻŽā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻ āĻ āĻ¨ā§āĻ¯āĻžā§ā§ āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻšā§āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĻā§āĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻŦā§āĻ¯āĻžāĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĨāĻžāĻāĻŋ - SQL(āĻ°āĻŋāĻ˛ā§āĻļāĻ¨āĻžāĻ˛) āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻāĻŦāĻ NoSQL(āĻ¨āĻ¨-āĻ°āĻŋāĻ˛ā§āĻļāĻ¨āĻžāĻ˛) āĻĄā§āĻāĻžāĻŦā§āĻ¸āĨ¤ āĻāĻŽāĻ°āĻž āĻā§āĻŽāĻ¨ āĻŦāĻž āĻā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻĄāĻžāĻāĻž āĻˇā§āĻā§āĻ° āĻāĻ°āĻ¤ā§ āĻāĻžāĻ, āĻāĻŋāĻāĻžāĻŦā§ āĻˇā§āĻā§āĻ° āĻāĻ°āĻ¤ā§ āĻāĻžāĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻĒā§āĻ°ā§ā§āĻāĻ¨ āĻ āĻ¨ā§āĻ¯āĻžā§ā§ āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻŦāĻžāĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻšā§āĨ¤ āĻĄāĻžāĻāĻžāĻ° āĻ§āĻ°āĻ¨ āĻ āĻ¨ā§āĻ¯āĻžā§ā§ āĻĄā§āĻāĻžāĻŦā§āĻ¸āĻā§āĻ˛ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻĻāĻŋā§ā§ āĻĨāĻžāĻā§āĨ¤
SQL | NoSQL |
---|---|
āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĄāĻžāĻāĻž āĻ¸ā§āĻā§āĻ° āĻāĻ°āĻž āĻšā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻžāĻ°āĻŋ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻŋāĻāĻŋ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ˛āĻžāĻŽ āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¨āĻŋāĻĻā§āĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĨ¤ āĻā§āĻŦāĻŋāĻ˛āĻā§āĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ relation āĻĨāĻžāĻā§āĨ¤ | āĻā§āĻ¨ āĻĒā§āĻ°āĻāĻžāĻ° relation āĻāĻžā§āĻž āĻĄāĻžāĻāĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻˇā§āĻā§āĻ° āĻāĻ°ā§ āĻĨāĻžāĻā§āĨ¤ āĻ¯ā§āĻŽāĻ¨āĻ key-value, graph, document āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤ |
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸ā§āĻāĻŋāĻŽāĻž āĻ āĻ¨ā§āĻ¯āĻžā§ā§ āĻĄāĻžāĻāĻž āĻ¸ā§āĻā§āĻ° āĻāĻ°āĻž āĻšā§āĨ¤ (āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸ā§āĻāĻŋāĻŽāĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻ¯āĻžā§āĨ¤) | NoSQL āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻĄāĻžāĻāĻ¨āĻžāĻŽāĻŋāĻ āĻ¸ā§āĻāĻŋāĻŽāĻž āĻĨāĻžāĻā§, āĻ āĻ°ā§āĻĨāĻžā§ āĻ¸ā§āĻāĻŋāĻŽāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ¯ā§āĻā§āĻ¯āĨ¤ |
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻĄā§āĻāĻžāĻŦā§āĻ¸
āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻŦā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§ āĻāĻŋāĻā§ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻāĻŋāĻĢ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻāĻ° āĻāĻ¨ā§āĻ¯, āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¸ā§āĻ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻĒāĻžāĻā§āĻžāĻ° āĻĒāĻ° āĻ¸ā§ āĻ¤āĻžāĻ° āĻ¯āĻžāĻŦāĻ¤ā§ā§ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻļā§āĻˇ āĻāĻ°ā§ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻāĻā§ āĻ°ā§āĻ¸āĻĒāĻ¨ā§āĻ¸ āĻĻāĻŋā§ā§ āĻĻāĻŋāĻŦā§, āĻāĻāĻŋ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°āĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŦ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĨāĻžāĻāĻŦā§ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§āĨ¤
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¯āĻĻāĻŋ āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° Fault/Error āĻĨāĻžāĻāĻžāĻ° āĻĒāĻ°āĻ āĻāĻžāĻ˛ā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŋāĻāĻŦāĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻ¯āĻĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻ¨āĻž āĻšā§, āĻ¤āĻŦā§ āĻ¸ā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ ReliableāĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻ¤ā§ āĻšāĻŦā§ āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ Fault āĻāĻ° āĻāĻžāĻ°āĻŖā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ Failure āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
Fault āĻāĻ°āĻāĻŽ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻā§āĻ¨ā§ user āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻā§ āĻāĻŽāĻ¨āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻā§ āĻ¯āĻžāĻ¤ā§ āĻā§āĻ¨ā§ Failure āĻšā§ā§ āĻā§āĻ˛, āĻ¸ā§āĻāĻž āĻāĻā§āĻāĻžāĻā§āĻ¤ āĻŦāĻž āĻ āĻ¨āĻŋāĻā§āĻāĻžāĻā§āĻ¤āĻāĻžāĻŦā§āĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻāĻ¨ āĻ¯āĻĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻ¨āĻž āĻšā§ā§ āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° Warning message āĻĻā§āĻāĻžāĻ˛ā§ āĻ¤āĻāĻ¨ āĻ¸ā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋāĻā§ āĻāĻŽāĻ°āĻž Reliable āĻŦāĻ˛āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻ°āĻŋāĻ˛āĻžāĻāĻŦāĻŋāĻ˛āĻŋāĻāĻŋ
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻŽā§ā§āĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻā§āĻ¨ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¯āĻ¤āĻā§āĻā§ āĻāĻžāĻ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¸ā§āĻāĻŋ āĻšāĻā§āĻā§ ThroughputāĨ¤ āĻ¯ā§āĻŽāĻ¨, āĻĒā§āĻ°āĻ¤āĻŋ ā§§ā§Ļ āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¯āĻĻāĻŋ ā§Ģā§Ļ āĻāĻŋ API request āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¤āĻžāĻšāĻ˛ā§ āĻ¤āĻžāĻ° Throughput āĻšāĻŦā§ ā§Ģā§Ļ/ā§§ā§Ļ = ā§ĢāĨ¤
āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ Resource āĻāĻ¨ā§āĻ¯ āĻ¯āĻāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§ Request āĻāĻ°ā§ āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĨā§āĻā§ FIRST BYTE of Response āĻ¯āĻāĻ¨ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§ āĻ¤āĻžāĻ° āĻŽāĻ§ā§āĻ¯āĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĻā§āĻā§ (Request āĻāĻ°āĻž āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻāĻŦāĻ FIRST BYTE āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻžāĻ° āĻ¸āĻŽā§ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤) āĻšāĻ˛ Time to First ByteāĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸
āĻāĻāĻžāĻ§āĻŋāĻ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° (āĻŦāĻž āĻāĻŽā§āĻĒā§āĻ¨ā§āĻ¨ā§āĻ) āĻāĻāĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻĢāĻ˛ā§ āĻā§āĻ¨ āĻāĻžāĻ āĻļā§āĻˇ āĻšā§ āĻāĻŦāĻ End User āĻāĻ° āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° (āĻŦāĻž āĻāĻŽā§āĻĒā§āĻ¨ā§āĻ¨ā§āĻ) āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻ¸ā§, āĻ¸ā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻšāĻ˛ āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§āĻĄ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĨ¤ āĻāĻ āĻŽā§āĻļāĻŋāĻ¨āĻā§āĻ˛ā§āĻ¤ā§ āĻļā§ā§āĻžāĻ°ā§āĻĄ āĻ¸ā§āĻā§āĻ(Shared State) āĻĨāĻžāĻā§, āĻāĻā§āĻāĻžāĻ°ā§āĻ¨ā§āĻāĻ˛āĻŋ (Concurrently) āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ Information āĻļā§ā§āĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĨ¤
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻŽā§ā§ Distributed System āĻāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻ˛ YouTubeāĨ¤
YouTube āĻā§āĻ¨?
- āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° User āĻĨā§āĻā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻĒāĻžā§ Video Upload āĻāĻŋāĻāĻŦāĻž Video Watch āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
- āĻāĻŋāĻĄāĻŋāĻ āĻāĻ¨āĻā§āĻĄāĨ¤
- āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĨ¤
āĻāĻā§āĻ˛ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻŽāĻŋāĻ˛ā§ Distributed System YouTube āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤
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) āĻāĻ° Authoritative Server āĻāĻ° āĻ¤āĻĨā§āĻ¯ āĻ¨āĻŋāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ°āĻžāĻā§āĨ¤
- āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ top-level domains: .com, .org, .gov
- āĻĻā§āĻļā§ā§ code top-level domains: .jp, .uk, .bd
-
Authoritative Server, āĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸ā§āĻ Human Readable Domain (āĻ¯ā§āĻŽāĻ¨ www.google.com) āĻāĻ° IP āĻĒāĻžāĻā§āĻž āĻ¯āĻžā§āĨ¤
-
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻĄā§āĻŽā§āĻāĻ¨ āĻ¨ā§āĻāĻŽ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ
Transmission Control Protocol āĻ āĻĨāĻŦāĻž TCP āĻšāĻā§āĻā§ āĻāĻāĻāĻŋ āĻ¨ā§āĻāĻā§āĻžāĻ°ā§āĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻžāĻ§āĻŋāĻ Device āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻ¸ā§āĻ āĻāĻĻāĻžāĻ¨-āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
TCP āĻā§ Reliable āĻŦāĻ˛āĻž āĻšā§ āĻāĻžāĻ°āĻŖ āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻā§āĻ˛ā§ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻ¸ā§āĻ āĻ āĻĻāĻžāĻ¨-āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻļā§āĻˇ āĻšāĻŦā§ āĻ¨āĻž āĻ¤āĻ¤āĻā§āĻˇāĻ¨ connection āĻŦāĻ¨ā§āĻ§ āĻšāĻŦā§ āĻ¨āĻžāĨ¤
Transmission āĻļā§āĻ°ā§ āĻšāĻā§āĻžāĻ° āĻĒā§āĻ°ā§āĻŦā§ TCP 3-way-handshake āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ connection established āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ ā§ŠāĻāĻŋ āĻ¸ā§āĻā§āĻĒā§ āĻšā§ā§ āĻĨāĻžāĻā§,
- SYN (synchronize): āĻāĻ flag āĻĻā§āĻŦāĻžāĻ°āĻž TCP āĻāĻžāĻ¨ā§āĻāĻļāĻ¨ establish āĻāĻ°āĻžāĻ° āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻž āĻšā§āĨ¤
- SYN-ACK (synchronize-acknowledge): āĻāĻ flag āĻāĻžāĻ¨ā§āĻāĻļāĻ¨ establish āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšā§āĨ¤
- ACK (acknowledge): āĻāĻ flag āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻžāĻ¨ā§āĻāĻļāĻ¨ establish āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻā§āĻžāĻ° acknowledge āĻāĻ°āĻž āĻšā§āĨ¤
āĻāĻ 3-way-handshake āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§ Device'āĻā§āĻ˛ā§(āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°) āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻ¸ā§āĻ āĻāĻĻāĻžāĻ¨-āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§ āĻāĻŋ āĻ¨āĻžāĨ¤
TCP Reliability āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ Acknowledgments āĻāĻŦāĻ Retransmissions āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ TCP āĻ¤ā§ āĻŽā§āĻ˛āĻ¤ āĻ¯āĻāĻ¨ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻĄā§āĻāĻž send āĻāĻ°ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻŋ āĻā§ Acknowledge āĻāĻ°ā§āĨ¤ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻ¯āĻĻāĻŋ Acknowledge āĻ¨āĻž āĻĒāĻžā§ āĻ¤āĻāĻ¨ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻāĻŦāĻžāĻ° āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ Retransmission āĻāĻ°āĻŦā§āĨ¤ āĻāĻ°āĻāĻŽ Reliability āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻšā§ā§ āĻĨāĻžāĻā§āĨ¤
TCP āĻŽā§āĻ˛āĻ¤ Networking āĻāĻ° OSI Model āĻāĻ° Practical FormāĨ¤ āĻāĻāĻŋ Transport Layer āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻšā§ āĻāĻŦāĻ Application Layer āĻ āĻāĻžāĻ āĻāĻ°ā§āĨ¤
HTTP, Web Socket, FTP āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻŽā§āĻ˛āĻ¤ TCP āĻ¤ā§ āĻāĻ˛ā§āĨ¤
UDP āĻŽā§āĻ˛āĻ¤ OSI Model āĻāĻ° Transport Layer-āĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°ā§āĨ¤ TCP āĻāĻ° āĻŽāĻ¤ āĻāĻāĻŋ reliable āĻ¨āĻžāĨ¤ āĻāĻ¤ā§ āĻā§āĻ¨ā§ 3-way handshake āĻ¤ā§āĻ°ā§ āĻšā§ āĻ¨āĻžāĨ¤ āĻāĻāĻŋ āĻŽā§āĻ˛āĻ¤ Low Latency āĻāĻŦāĻ unreliable connection āĻ¤ā§āĻ°ā§ āĻāĻ°ā§āĨ¤
UDP Process to Process communication establish āĻāĻ°ā§āĨ¤
TCP āĻ¤ā§ āĻ¯ā§āĻšā§āĻ¤ā§ 3-way handshake āĻ¤ā§āĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ reliable connection āĻ¤ā§āĻ°ā§ āĻšā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ 3-way handshake āĻ¤ā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻ¸āĻŽā§ā§āĻ° āĻĒā§āĻ°ā§ā§āĻāĻ¨ āĻšā§ āĻ¸ā§āĻāĻ¨ā§āĻ¯ performance āĻāĻŽ āĻĒāĻžāĻā§āĻž āĻ¯āĻžā§āĨ¤ Performance āĻāĻ° āĻāĻĨāĻž āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻ˛ā§ UDP āĻāĻāĻāĻŋ better choiceāĨ¤
UDP āĻ¤ā§ āĻā§āĻ¨ā§ Error checking āĻšā§ āĻ¨āĻžāĨ¤
HTTP āĻ āĻ°ā§āĻĨāĻžā§ Hyper Text Transfer Protocol, HTTP āĻāĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻĨāĻžāĻā§, āĻ¯āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ Web Browser āĻāĻŦāĻ Web Server āĻ¨āĻŋāĻā§āĻĻā§āĻ° āĻāĻŋāĻ¤āĻ° communication āĻāĻ°ā§ āĻĨāĻžāĻā§āĨ¤ āĻāĻāĻŋ āĻāĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° set of rules āĻ¯āĻž āĻĄā§āĻāĻž āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻĨā§āĻā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°ā§āĨ¤ āĻĄā§āĻāĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ Text, Image āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻāĻŦāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻŋāĻ¤āĻ° āĻĄā§āĻāĻž āĻāĻĻāĻžāĻ¨ āĻĒā§āĻ°āĻ§āĻžāĻ¨ plain-text āĻ āĻšā§ā§ āĻĨāĻžāĻā§, āĻāĻ° āĻĢāĻ˛ā§ HTTP secured āĻ¨āĻžāĨ¤
TLS āĻāĻŋāĻāĻŦāĻž Transport Layer Security, āĻāĻāĻŋ āĻšāĻ˛ā§ Cryptographic Protocol āĻ¯āĻž āĻŽā§āĻ˛āĻ¤ communication āĻ¸ā§āĻ°āĻā§āĻˇāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšā§āĨ¤ āĻāĻāĻŋ āĻĄāĻžāĻāĻž āĻāĻ¨āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻ°ā§ āĻĨāĻžāĻā§ āĻĄāĻžāĻāĻž āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻĨā§āĻā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻ āĻšāĻā§āĻžāĻ° āĻ¸āĻŽā§āĨ¤
HTTPS āĻ āĻ°ā§āĻĨāĻžā§ Hyper Text Transfer Protocol Secure, āĻāĻāĻŋ āĻ¨āĻŋāĻā§ HTTP āĻāĻ° āĻ¸āĻāĻ˛ āĻŦā§āĻļāĻŋāĻˇā§āĻ āĻŦāĻšāĻ¨ āĻāĻ°ā§ āĻļā§āĻ§ā§ SSL/TLS āĻ¯ā§āĻ āĻāĻ°ā§, āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻāĻŦāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĄā§āĻāĻž āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ° Encrypted āĻšā§ā§ āĻĨāĻžāĻā§āĨ¤
(āĻāĻŦāĻŋāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ āĻĨā§āĻā§ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻž)āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ° āĻāĻ° Address Bar āĻ URL āĻāĻžāĻāĻĒ āĻāĻ°ā§ enter press āĻāĻ°āĻŦā§āĻ¨, āĻāĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻāĻāĻŋāĻā§ DNS āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ āĻĒāĻžāĻ āĻŋā§ā§ āĻĻāĻŋāĻŦā§ āĻ¤āĻžāĻ°āĻĒāĻ° āĻĻā§āĻāĻŦā§ DNS cache āĻāĻ° āĻāĻŋāĻ¤āĻ° āĻ¸ā§āĻ URL āĻāĻ° IP āĻāĻĄā§āĻ°ā§āĻ¸ āĻāĻā§ āĻāĻŋ āĻ¨āĻžāĨ¤ āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻĨāĻžāĻā§ āĻ¤āĻžāĻšāĻ˛ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ steps āĻļā§āĻˇ āĻāĻ°āĻžāĻ° āĻĒāĻ° DNS āĻ¸ā§āĻ URL āĻāĻ° IP āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻ°āĻŦā§āĨ¤
āĻ¤āĻžāĻ°āĻĒāĻ° 3-way handshake āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ IP address āĻāĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ° āĻ¸āĻžāĻĨā§ TCP āĻāĻžāĻ¨ā§āĻāĻļāĻ¨ āĻ¤ā§āĻ°ā§ āĻšāĻŦā§āĨ¤
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ browser TCP āĻāĻžāĻ¨ā§āĻāĻļāĻ¨ āĻāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ āĻ¸ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ HTTP āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°ā§āĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻāĻ°ā§ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ°ā§āĻ¸āĻĒāĻ¨ā§āĻ¸ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻ°ā§ āĻĨāĻžāĻā§āĨ¤ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ° āĻ¸ā§āĻ āĻ°ā§āĻ¸āĻĒāĻ¨ā§āĻ¸ āĻā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻā§āĻĒ āĻļā§āĻˇ āĻāĻ°ā§ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ°ā§ āĻĻā§āĻāĻžā§āĨ¤
High Concurrency āĻŽāĻžāĻ¨ā§ āĻšāĻā§āĻā§, āĻ¯āĻāĻ¨ āĻāĻāĻžāĻ§āĻŋāĻ user āĻāĻŋāĻāĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ process āĻāĻāĻ āĻ¸āĻŽā§/āĻāĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻāĻŋāĻāĻŦāĻž āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĄāĻžāĻāĻž modify āĻāĻ°āĻ¤ā§ āĻ¯āĻžā§āĨ¤ āĻāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¨ā§āĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸ā§āĻˇā§āĻāĻŋ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŦāĻā§ā§ā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻā§āĻā§ Data InconsistencyāĨ¤
(āĻāĻ˛āĻŽāĻžāĻ¨)
āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŋ āĻāĻŋ āĻāĻžāĻ āĻāĻ°ā§ āĻ¸ā§āĻāĻŋ Functional Requirement āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§ āĻĨāĻžāĻā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻ˛āĻž āĻ¯āĻžā§, āĻ¸ā§āĻļā§āĻ¯āĻžāĻ˛ āĻŽāĻŋāĻĄāĻŋā§āĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§,
- āĻĒā§āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯āĻžā§
- āĻĒā§āĻ¸ā§āĻā§ āĻ˛āĻžāĻāĻ āĻāĻ°āĻž āĻ¯āĻžā§
- āĻĒā§āĻ¸ā§āĻā§ āĻāĻŽā§āĻ¨ā§āĻ āĻāĻ°āĻž āĻ¯āĻžā§
- āĻĒā§āĻ¸ā§āĻā§ āĻĄāĻŋāĻ˛āĻŋāĻ āĻāĻ°āĻž āĻ¯āĻžā§
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻž āĻšāĻā§āĻā§ āĻāĻ āĻāĻāĻāĻŋ Functional RequirementāĨ¤
āĻāĻāĻŋ āĻŽā§āĻ˛āĻ¤ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻā§āĻŖāĻŽāĻžāĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻ¤āĻž (Quality Characteristics), āĻāĻĻāĻžāĻšāĻ°āĻŖ:
- Performance
- Security
- Cost
- Scalability
- Reliability
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻž āĻšāĻā§āĻā§ āĻāĻ āĻāĻāĻāĻŋ Non Functional RequirementāĨ¤
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻāĻ¨āĻŋāĻ āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ°āĻā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ° Load Balancer, CDN āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§ āĻāĻŋ āĻ¨āĻž āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ āĻ§āĻžāĻ°āĻ¨āĻž āĻšāĻŋāĻ¸āĻžāĻŦ āĻāĻ°ā§ āĻŦāĻ˛ā§ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻŦā§āĻ¯āĻžāĻ āĻ āĻĢ āĻĻāĻž āĻāĻ¨āĻā§āĻ˛āĻĒ āĻāĻ¸ā§āĻāĻŋāĻŽā§āĻļāĻ¨
āĻāĻāĻāĻŋ secured āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ design āĻāĻ°āĻ¤ā§ āĻšāĻ˛ā§ Authentication āĻāĻŦāĻ Authorization āĻāĻžāĻ¨āĻž āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖāĨ¤ Authentication āĻŽā§āĻ˛āĻ¤ identity verify āĻāĻ°āĻžāĻā§ āĻŦā§āĻāĻžā§āĨ¤ āĻāĻŽāĻ°āĻž āĻ¯āĻāĻ¨ āĻā§āĻ¨ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻŋā§ā§ āĻāĻŽā§āĻāĻ˛ āĻāĻŦāĻ āĻĒāĻžāĻ¸āĻā§āĻžāĻ°ā§āĻĄ āĻĻāĻŋā§ā§ āĻ˛āĻāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŋ, āĻ¸ā§āĻ āĻāĻŽā§āĻāĻ˛ āĻāĻ° āĻĒāĻžāĻ¸āĻā§āĻžāĻ°ā§āĻĄ āĻā§āĻ°āĻŋāĻĢāĻžāĻ āĻāĻ°ā§ āĻšāĻā§āĻā§ AuthenticationāĨ¤
Authorization āĻšāĻ˛ā§ āĻā§āĻ¨ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ user āĻāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§ āĻāĻŋ āĻ¨āĻž āĻ¤āĻž āĻŦā§āĻāĻžā§āĨ¤ āĻ¯ā§āĻŽāĻ¨ āĻā§āĻ¨ā§ āĻāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ API āĻĨāĻžāĻā§ āĻ¯āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§ā§° āĻāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻā§āĻ°ā§āĻāĻ° āĻŽāĻžāĻ¨ā§āĻˇ āĻāĻžā§āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§ āĻ¨āĻž, āĻāĻāĻ¨ āĻ¯āĻĻāĻŋ āĻā§āĻ āĻāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻāĻžā§ āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸ā§āĻ āĻŽāĻžāĻ¨ā§āĻˇāĻāĻž Authorize āĻāĻā§ āĻāĻŋ āĻ¨āĻž āĻ¸ā§āĻāĻžāĻ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻž āĻšāĻā§āĻā§ AuthorizationāĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻ āĻĨā§āĻ¨āĻāĻŋāĻā§āĻļāĻ¨ āĻāĻŦāĻ āĻ āĻĨāĻ°āĻŋāĻāĻžāĻļāĻ¨
āĻāĻ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§ āĻĄā§āĻāĻž Store āĻāĻŦāĻ Maintain Application āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻšā§ā§ āĻĨāĻžāĻā§āĨ¤ FTTP āĻšāĻ˛ StatefulāĨ¤
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻā§āĻŦāĻ¨ā§ Stateful āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ° āĻāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻ˛ Web SocketāĨ¤ Web Socket āĻŽā§āĻ˛āĻ¤ bidirectional, full-duplex protocolāĨ¤ āĻāĻāĻžāĻ¨ā§ Server āĻĄā§āĻāĻž store āĻāĻ°ā§ āĻ°āĻžāĻā§, āĻ¯āĻžāĻ¤ā§ Client āĻ¸āĻŦāĻ¸āĻŽā§ Server āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻĒāĻžā§āĨ¤
āĻāĻ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§ āĻĄā§āĻāĻž Store āĻāĻŦāĻ Maintain Application āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻšā§ āĻ¨āĻž āĻŦāĻ°āĻ āĻā§āĻ¨ā§ Database āĻŦāĻž Cache āĻ āĻ¸ā§āĻā§āĻ° āĻāĻŦāĻ āĻŽā§āĻāĻ¨āĻā§āĻāĻ¨ āĻšā§āĨ¤ HTTP āĻšāĻ˛ StatelessāĨ¤
HTTP āĻ¸āĻŦāĻ¸āĻŽā§ Stateless Architecture, āĻāĻžāĻ°āĻŖ āĻā§āĻ¨ā§ protected resource āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻŦāĻ¸āĻŽā§ request āĻāĻ°āĻžāĻ° āĻ¸āĻŽā§ cookie/token āĻ¸āĻžāĻĨā§ āĻĻāĻŋāĻ¤ā§ āĻšā§āĨ¤ server āĻāĻāĻ¨ā§ cookie/token āĻ¸ā§āĻā§āĻ° āĻāĻ°ā§ āĻ°āĻžāĻā§ āĻ¨āĻžāĨ¤
āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻ¯āĻāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻ¸āĻŽā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻ¨āĻž āĻāĻ°ā§ āĻ āĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻ˛ā§, āĻ¸ā§āĻ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻšāĻā§āĻā§ āĻĒā§āĻ°āĻā§āĻ¸āĻŋ āĻāĻŦāĻ āĻ¯ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĻāĻŋā§ā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻŦā§ āĻ¸ā§āĻāĻž āĻšāĻā§āĻā§ āĻĒā§āĻ°āĻā§āĻ¸āĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĨ¤
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻā§āĻŦāĻ¨ā§ āĻĒā§āĻ°āĻā§āĻ¸āĻŋāĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻā§āĻā§ NGINXāĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻĒā§āĻ°āĻā§āĻ¸āĻŋ
REST Api āĻāĻžāĻ¨āĻžāĻ° āĻĒā§āĻ°ā§āĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻāĻ¤ā§ āĻšāĻŦā§ āĻ°ā§āĻ¸ā§āĻ(REST) āĻŽāĻžāĻ¨ā§ āĻāĻŋ, REST āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ Representational State Transfer āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§ āĻĻāĻžā§āĻžā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°āĻžāĻ˛ āĻ¸ā§āĻāĻžāĻāĻ˛ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšā§ āĻ¸ā§āĻā§āĻ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ° āĻāĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻāĻāĻ¨ REST Api āĻšāĻ˛, āĻāĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻŋāĻāĻ āĻāĻ¨āĻā§āĻ¨āĻļāĻ¨ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšā§ āĻĻā§āĻāĻŋ āĻāĻ¨ā§āĻĄ(āĻ¯ā§āĻŽāĻ¨āĻ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻāĻŦāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°) āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸ā§āĻā§āĻ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ° āĻāĻ°āĻžāĻā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
āĻ¸ā§āĻā§āĻ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ° āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻŋāĻā§ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻ HTTP Methods āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšā§, GET, POST, PUT, PATCH & DELETE, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽā§āĻ¯āĻžāĻĨā§āĻĄā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻžāĻ¨āĻ¤ā§ REST Api āĻ¸ā§āĻāĻļāĻ¨ā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨āĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻ°ā§āĻ¸ā§āĻ āĻāĻĒāĻŋāĻāĻ
āĻ¸ā§āĻā§āĻ˛ā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻā§āĻˇāĻŽāĻ¤āĻžāĻā§ āĻŦā§āĻāĻžā§ āĻ¯āĻāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻŦāĻžā§āĻ¤ā§ āĻĨāĻžāĻā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻ˛āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻāĻāĻŋ āĻā§ā§āĻŦāĻ¸āĻžāĻāĻā§āĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻāĻāĻ¨ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ āĻĨā§āĻā§ ā§Ģ āĻŽāĻžāĻ¸ āĻĒāĻ° āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ ā§¨ āĻā§āĻŖ āĻšā§ā§ āĻā§āĻ˛ āĻ¤āĻžāĻ° āĻ āĻŋāĻ āĻāĻ°āĻ ā§Ģ āĻŽāĻžāĻ¸ āĻĒāĻ° āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ ā§Ē āĻā§āĻŖ āĻšā§ā§ āĻā§āĻ˛, āĻāĻāĻāĻž āĻ¸āĻŽā§ āĻĻā§āĻāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¤ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻ˛ā§āĻĄ āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°āĻā§ āĻ¨āĻž, āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ˛ āĻāĻ°āĻžāĻā§ āĻ¸ā§āĻā§āĻ˛ā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ āĻŦāĻ˛ā§āĨ¤
āĻ¸ā§āĻā§āĻ˛ā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ 2 āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ°, āĻāĻžāĻ°ā§āĻāĻŋāĻāĻžāĻ˛ āĻ¸ā§āĻā§āĻ˛ā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ (Vertical Scalability) āĻāĻŦāĻ āĻšāĻ°āĻžāĻāĻāĻ¨ā§āĻāĻžāĻ˛ āĻ¸ā§āĻā§āĻ˛ā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ (Horizontal Scalability)āĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻ¸ā§āĻā§āĻ˛ā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ
Database Sharding āĻšāĻ˛ āĻā§āĻŦāĻŋāĻ˛ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻĒā§āĻĨāĻ āĻāĻ°āĻžāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻ˛āĻž āĻ¯āĻžā§, āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻĄā§āĻāĻž/row āĻ¯āĻĻāĻŋ āĻŦāĻžā§āĻ¤ā§ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāĻ¤ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻĄā§āĻāĻž/row āĻŦā§ā§ā§ āĻā§āĻ˛ āĻ¯āĻžāĻ° āĻĢāĻ˛ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻā§āĻŦāĻŋāĻ˛ā§ āĻāĻ° āĻ¸ā§āĻā§āĻ° āĻāĻ°āĻž āĻ¯āĻžā§ āĻ¨āĻž āĻ¤āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻĄā§āĻāĻžāĻā§āĻ˛ā§āĻā§ āĻŽā§āĻ˛ āĻā§āĻŦāĻŋāĻ˛ āĻĨā§āĻā§ āĻĒā§āĻĨāĻ āĻāĻ°ā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ shard āĻā§āĻŦāĻŋāĻ˛ā§ distribute āĻāĻ°ā§ āĻ°āĻžāĻāĻŋ āĻ¸ā§āĻāĻžāĻ Database ShardingāĨ¤ āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻļāĻ¨ āĻšāĻŦā§āĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻ¸āĻžā§°ā§āĻĄāĻŋāĻ
Database Replication āĻāĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° Strategy, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ Master Database āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻŋāĻāĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ Slave Database āĻĨāĻžāĻāĻŦā§āĨ¤ Master Database āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ Insert, Delete āĻāĻŦāĻ Update āĻāĻ° āĻāĻžāĻ āĻšāĻŦā§ āĻāĻŦāĻ Slave Database āĻŽāĻ§ā§āĻ¯ā§ Master Database āĻāĻ° āĻĄā§āĻāĻžāĻā§āĻ˛ā§āĻ° Copy āĻĨāĻžāĻāĻŦā§ āĻāĻŦāĻ āĻ¤āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻļā§āĻ§ā§ Read Operation āĻšāĻŦā§āĨ¤
Database Replication, SQL āĻāĻŦāĻ NoSQL āĻĻā§āĻāĻŋ āĻĄā§āĻāĻžāĻŦā§āĻ¸ā§ āĻāĻ°āĻž āĻ¯āĻžā§āĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻ°ā§āĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨
Caching āĻāĻāĻāĻŋ āĻā§āĻļāĻ˛ āĻ¯āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻā§āĻ¨ Expensive Response'āĻā§ āĻā§āĻ¨ā§ āĻŽā§āĻŽā§āĻ°āĻŋāĻ¤ā§ āĻ°āĻžāĻāĻž āĻšā§, āĻ¯āĻžāĻ¤ā§ āĻŦāĻžāĻ° āĻŦāĻžāĻ° āĻāĻ¸āĻž āĻ¸ā§āĻ āĻ°ā§āĻ¸ā§āĻĒāĻ¨ā§āĻ¸ā§āĻ° āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻā§ āĻĻā§āĻ°ā§āĻ¤ āĻ°ā§āĻ¸āĻĒāĻ¨ā§āĻ¸āĻāĻŋ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻŽā§āĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ (āĻ¯ā§āĻŽāĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸) āĻšāĻŋāĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻā§āĻ¯āĻžāĻļāĻŋāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻŦā§āĨ¤ āĻāĻ¤ā§ āĻāĻ°ā§ āĻ¯ā§ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻā§āĻā§ āĻšāĻŦā§,
- Read API āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ Fast āĻšāĻŦā§
- Latency Reduce āĻšāĻŦā§
- Fault Tolarence āĻāĻ° āĻā§āĻāĻāĻŋ āĻāĻŽāĻŦā§
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻā§āĻ¯āĻžāĻļāĻŋāĻ
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 āĻŦāĻ˛ā§āĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻāĻ¨āĻā§āĻ¨ā§āĻ āĻĄā§āĻ˛āĻŋāĻāĻžāĻ°āĻŋ āĻ¨ā§āĻāĻā§āĻžāĻ°ā§āĻ
Rate Limiter āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¸ā§āĻ¸, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻĨā§āĻā§ āĻāĻ¸āĻž āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¯āĻžāĻā§āĻžāĻ° āĻĒā§āĻ°ā§āĻŦā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻāĻāĻŋ āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻāĻ°āĻž āĻšā§āĨ¤ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻŽā§ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ Rate Limiter āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§ āĻĨāĻžāĻā§āĨ¤ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻ¨ā§āĻ° āĻā§ā§ā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻŦā§āĻļāĻŋ āĻšā§ā§ āĻā§āĻ˛ā§ Rate Limiter āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻāĻā§āĻ˛ā§āĻā§ block āĻāĻ°ā§ āĻĢā§āĻ˛ā§, āĻ¯āĻžāĻ° āĻĢāĻ˛ā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻāĻā§āĻ˛ā§ āĻāĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻžāĨ¤
āĻāĻāĻžāĻ¨ā§ āĻŽā§āĻ˛ āĻĒā§ā§āĻ¨ā§āĻ ā§¨āĻāĻŋ, āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻŽā§ āĻāĻŦāĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻāĨ¤
āĻāĻĒāĻ°ā§āĻ° āĻāĻŦāĻŋāĻ¤ā§ āĻĻā§āĻāĻž āĻ¯āĻžāĻā§āĻā§, āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻŦāĻ āĻ°ā§āĻ¸ā§āĻĒāĻ¨ā§āĻ¸ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ middleware āĻšāĻŋāĻ¸ā§āĻŦā§ rate limiter āĻāĻā§āĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻ°ā§āĻāĻ āĻ˛āĻŋāĻŽāĻŋāĻāĻžāĻ°
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻĒā§āĻ āĻŦāĻž āĻĨāĻŋāĻāĻ°āĻŋ āĻ¯āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻāĻž āĻ¯āĻžā§, āĻāĻāĻāĻŋ Distributed System āĻ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻĒā§āĻ°ā§āĻĒāĻžāĻ°ā§āĻāĻŋ āĻĨā§āĻā§ āĻĻā§āĻāĻāĻŋ āĻĒā§āĻ°ā§āĻĒāĻžāĻ°ā§āĻāĻŋ āĻ¸āĻŦāĻ¸āĻŽā§ āĻŽā§āĻ¨ā§ āĻāĻ˛āĻŦā§āĨ¤
- C āĻŽāĻžāĻ¨ā§ Consistency
- A āĻŽāĻžāĻ¨ā§ Availability
- P āĻŽāĻžāĻ¨ā§ Partition Tolerance
Consistency āĻšāĻā§āĻā§ āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸ā§āĻāĻļāĻ¨ (Transection) āĻļā§āĻˇ āĻšāĻā§āĻžāĻ° āĻĒāĻ° āĻ¸āĻŦ āĻ¨ā§āĻĄā§ āĻ¸āĻŦāĻ¸āĻŽā§ consistent āĻŦāĻž āĻāĻāĻ value āĻĨāĻžāĻāĻŦā§āĨ¤
Availability āĻŽāĻžāĻ¨ā§ āĻšāĻā§āĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ read āĻāĻŦāĻ write āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻšā§ āĻĒā§āĻ°āĻ¸ā§āĻ¸(process) āĻšāĻŦā§ āĻ¨āĻž āĻšā§ āĻā§āĻ¨ā§ message āĻĒāĻžāĻŦā§ āĻ¯ā§ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨(request) āĻĒā§āĻ°āĻ¸ā§āĻ¸(process) āĻšāĻā§āĻā§ āĻ¨āĻžāĨ¤
Partition Tolerance āĻšāĻā§āĻā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻ¨ā§āĻĄ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ¨ā§āĻāĻļāĻ¨(connection) āĻ¨āĻˇā§āĻ āĻšāĻ˛ā§āĻ, read āĻāĻŦāĻ write āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻšāĻŦā§āĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻā§āĻ¯āĻžāĻĒ āĻĨāĻŋāĻāĻ°āĻžāĻŽ
Polling āĻŽāĻžāĻ¨ā§ āĻšāĻā§āĻā§ client regular interval āĻ server āĻā§ āĻŦāĻžāĻ° āĻŦāĻžāĻ° āĻĄā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻŦā§āĨ¤ āĻ¯ā§āĻŽāĻ¨, āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻĒā§āĻ°āĻ¤āĻŋ ā§Ģ āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻĒāĻ° āĻĒāĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻŦā§ āĻāĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¤āĻžāĻ° āĻ°ā§āĻ¸āĻĒāĻ¨ā§āĻ¸ āĻĻāĻŋāĻŦā§āĨ¤
Polling āĻāĻ° āĻ¸āĻŦāĻā§ā§ā§ āĻŦā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻā§āĻā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ Bandwidth āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻšāĻā§āĻžāĨ¤
Web Socket āĻŽāĻžāĻ¨ā§ āĻšāĻā§āĻā§ Socket āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻŦāĻ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ¨ā§āĻāĻļāĻ¨ āĻ¤ā§āĻ°ā§ āĻšāĻŦā§ āĻ¯āĻž āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻŦāĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¯āĻ¤āĻā§āĻˇāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ disconnected āĻ¨āĻž āĻšāĻā§āĻā§ āĻ¤āĻ¤āĻā§āĻˇāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻžāĻ¨ā§āĻāĻļāĻ¨ āĻĨāĻžāĻāĻŦā§āĨ¤ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻāĻāĻžāĻ¨ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§ āĻŦāĻžāĻ° āĻŦāĻžāĻ° āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻž āĻ˛āĻžāĻāĻŦā§ āĻ¨āĻž, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻžāĻ¨ā§āĻāĻļāĻ¨ āĻāĻā§ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻāĻŦāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸ā§āĻšā§āĻ¤ā§ āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° event āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¸āĻāĻāĻāĻŋāĻ¤ āĻšāĻ˛ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ° āĻ°ā§āĻ¸āĻĒāĻ¨ā§āĻ¸ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻāĻā§ āĻĒāĻžāĻ āĻŋā§ā§ āĻĻāĻŋāĻŦā§āĨ¤ Web Socket āĻā§āĻāĻ¨ā§āĻ˛āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ Chat Application āĻŦāĻžāĻ¨āĻžāĻ¨ā§ āĻ¯āĻžā§āĨ¤
Web Socket āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻŦāĻ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ¨ā§āĻāĻļāĻ¨ āĻ¤ā§āĻ°ā§ āĻšā§, āĻ āĻ°ā§āĻĨāĻžā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻŋāĻ¤āĻ° āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻā§āĻ° āĻāĻŋāĻā§ āĻāĻ¨āĻĢāĻ°āĻŽā§āĻļāĻ¨ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻžāĻ¤ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻāĻā§ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻ¨ā§āĻ¯ āĻāĻāĻŋāĻā§ Stateful Architecture āĻŦāĻ˛āĻž āĻšā§āĨ¤
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ Producer āĻĨāĻžāĻāĻŦā§, āĻ¯āĻžāĻĻā§āĻ° āĻāĻžāĻ āĻšāĻā§āĻā§ Message(āĻāĻāĻžāĻ¨ā§ message āĻŽāĻžāĻ¨ā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ) Queue āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ send āĻāĻ°āĻž āĻāĻŦāĻ queue āĻ¸ā§āĻ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻāĻā§āĻ˛ā§āĻā§ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻāĻ°ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ consumer āĻāĻ° āĻāĻžāĻā§ āĻĒāĻžāĻ āĻŋā§ā§ āĻĻā§ā§āĨ¤
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° Throughput āĻŦā§āĻĻā§āĻ§āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ Message Queue āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšā§āĨ¤
Message Queue āĻĒā§āĻ°āĻ¤āĻŋāĻāĻž Task āĻā§ Asynchronously āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻāĻ°ā§ āĻĨāĻžāĻā§, āĻŽāĻžāĻ¨ā§ āĻāĻāĻāĻŋ Task āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻšā§ āĻ¤āĻāĻ¨ āĻ āĻ¨ā§āĻ¯ task āĻāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻ¨āĻžāĨ¤
āĻĒāĻĒā§āĻ˛āĻžāĻ° Streaming Service Netflix, Airbnb āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ Message Queue āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ Agoda āĻ¤āĻžāĻĻā§āĻ° Analytical Data, Real-time Monitoring āĻāĻ° Solution āĻāĻ° āĻāĻ¨ā§āĻ¯ Message Queue āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ¸āĻā§, 1.8 trillion events āĻĒā§āĻ°āĻ¤āĻŋ āĻĻāĻŋāĻ¨ Message Queue āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻāĻ°ā§ āĻāĻ¸āĻā§āĨ¤
āĻāĻŽāĻ°āĻž āĻ¯ā§ āĻā§āĻ¨ā§ Food Delivery āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻĨāĻž āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻŋ āĻ¯āĻĻāĻŋ, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻ¨ Delivery boy āĻāĻ° āĻ˛āĻžāĻāĻ āĻ˛ā§āĻā§āĻļāĻ¨ āĻāĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ Pooling āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ ā§Ģ āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻĒāĻ° āĻĒāĻ° āĻ¨āĻŋā§ā§ āĻĨāĻžāĻāĻŋ āĻāĻŦāĻ āĻā§āĻ¨ āĻ¸āĻŽā§ā§ āĻā§āĻ¨ āĻ˛ā§āĻā§āĻļāĻ¨ā§ āĻāĻŋāĻ˛ āĻ¸ā§āĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸ā§āĻā§āĻ° āĻāĻ°ā§ āĻ°āĻžāĻāĻŋāĨ¤ āĻāĻāĻāĻ¨ āĻāĻāĻāĻžāĻ° āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻ˛ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ āĻŋāĻāĻŽāĻ¤ā§ āĻāĻžāĻ āĻāĻ°āĻŦā§, āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸ā§āĻā§āĻ° āĻāĻ°ā§ āĻ°āĻžāĻāĻŦā§āĨ¤
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻāĻāĻ¨ āĻŽāĻžāĻ¨ā§āĻˇ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§ āĻ¨āĻžāĨ¤ āĻšāĻžāĻāĻžāĻ° āĻšāĻžāĻāĻžāĻ° Delivery boy āĻāĻ° āĻ˛āĻžāĻāĻ āĻ˛ā§āĻā§āĻļāĻ¨ āĻāĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ¸ā§āĻā§āĻ°ā§ āĻāĻ°ā§ āĻ°āĻžāĻāĻŋ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻāĻ°āĻŦā§āĨ¤ āĻāĻžāĻ°āĻŖ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° Throughput āĻāĻŽāĨ¤
āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻŽāĻ°āĻž Message Queue āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦāĨ¤ ā§¨ āĻāĻŋ āĻāĻ¨āĻĒā§āĻ°āĻŋā§ Message Queue āĻšāĻā§āĻā§,
- Kafka
- RabbitMQ
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻŽā§āĻ¸ā§āĻ āĻāĻŋāĻ
Single Sign-On āĻāĻŋāĻāĻŦāĻž SSO āĻšāĻ˛ āĻāĻāĻāĻŋ Authentication MechanismāĨ¤ āĻ¯āĻž user āĻā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻĒā§āĻ˛āĻžāĻāĻĢāĻ°ā§āĻŽ (āĻā§āĻāĻ˛, āĻĢā§āĻāĻ¸āĻŦā§āĻ, āĻā§āĻāĻāĻžāĻ°) āĻĻāĻŋā§ā§ Authenticate āĻāĻ°ā§ āĻĻā§ā§, āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ credential āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§āĨ¤
(āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻ˛āĻŽāĻžāĻ¨)
āĻāĻāĻŋ āĻāĻāĻāĻŋ NoSQL āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻĄā§āĻāĻžāĻŦā§āĻ¸āĨ¤ āĻŽā§āĻ˛āĻ¤ āĻāĻāĻŋāĻā§ Distributed Search āĻāĻŦāĻ Aggregation Engine āĻšāĻŋāĻ¸ā§āĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšā§āĨ¤ Elasticsearch āĻāĻ° āĻāĻŋāĻ¤āĻ° structured āĻāĻŦāĻ unstructured data āĻ¸ā§āĻā§āĻ° āĻāĻ°ā§ āĻ°āĻžāĻāĻž āĻ¯āĻžā§āĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻāĻ˛āĻžāĻ¸ā§āĻāĻŋāĻāĻ¸āĻžāĻ°ā§āĻ
Bloom Filter āĻāĻāĻāĻŋ Probabilistic Data StructureāĨ¤ Hashing āĻā§āĻāĻ¨āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻžāĻ¨ā§ āĻĄā§āĻāĻž insert āĻāĻ°āĻž āĻšā§āĨ¤ āĻāĻāĻŋ āĻā§āĻŦāĻ Faster āĻāĻŦāĻ āĻŽā§āĻŽā§āĻ°āĻŋ EfficientāĨ¤
Bloom Filter āĻāĻ° āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ°ā§ āĻāĻžāĻ¨āĻžāĻ° āĻĒā§āĻ°ā§āĻŦā§ Hashing āĻāĻŋ āĻāĻžāĻ¨āĻž āĻ¨ā§ā§āĻž āĻ¯āĻžāĻāĨ¤ āĻāĻāĻāĻŋ Hash Function āĻ¨āĻŋāĻā§āĻ° āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§ input āĻ¨āĻŋā§ā§ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻ¸ā§āĻ input āĻā§ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻĢāĻŋāĻā§āĻ¸āĻĄ length āĻāĻ° unique identifier āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻ°ā§āĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖ, āĻāĻ¨āĻĒā§āĻ 'david' āĻšāĻ˛ā§ āĻāĻāĻāĻĒā§āĻ āĻšāĻŦā§ 5
// hash function
function generateHash(table_size, user) {
let index;
let user_length = user.length;
index = user_length % table_size;
return index;
}
generateHash(10, "david"); // 5
Bloom Filter Data Structure āĻ Hash function āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽāĻ°āĻž set āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ specific position āĻ element insert āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° set āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ specific element āĻ¸āĻžāĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¯āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ element āĻ¸āĻžāĻ°ā§āĻ āĻāĻ°āĻŋ āĻ¤āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻŋ āĻāĻŋāĻ¨āĻŋāĻ¸ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻĒāĻžāĻŦā§,
-
āĻšā§ possibly yes - āĻŽāĻžāĻ¨ā§ element, set āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĨāĻžāĻāĻŦā§ āĻ¤āĻŦā§ āĻ¨āĻž āĻĨāĻžāĻāĻžāĻ° āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻž āĻāĻā§āĨ¤
-
āĻ¨āĻž āĻšā§ no - āĻŽāĻžāĻ¨ā§ element, set āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻžāĻāĨ¤
āĻāĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻā§ Probabilistic Data Structure āĻŦāĻ˛āĻž āĻšā§āĨ¤
đ āĻāĻ°āĻ āĻĒā§ā§āĻ¨: āĻŦā§āĻ˛ā§āĻŽ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°
OAuth2 āĻšāĻ˛ āĻāĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° Authorization Grant TechniqueāĨ¤ āĻāĻāĻŋ Google, Facebook āĻāĻ° āĻŽāĻ¤ āĻā§ā§āĻŦāĻ¸āĻžāĻāĻ āĻĨā§āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ information āĻāĻ¨āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° password āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ sensitive information āĻāĻžā§āĻžāĨ¤ āĻāĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ information āĻ āĻāĻāĻāĻŋ Access Token āĻĨāĻžāĻā§ āĻ¯āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸(āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻā§āĻ¨ā§ āĻā§ā§āĻŦāĻ¸āĻžāĻāĻ āĻ Login) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĨ¤
āĻāĻāĻŋ āĻ¯ā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§,
āĻ§āĻ°ā§āĻ¨ āĻāĻĒāĻ¨āĻŋ āĻā§āĻ¨ā§ āĻā§ā§āĻŦāĻ¸āĻžāĻāĻā§ āĻ˛āĻāĻāĻ¨ āĻāĻ°āĻā§āĻ¨āĨ¤ āĻ¸ā§āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻŋ Continue with Google āĻŦāĻžāĻāĻ¨ āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻ˛ā§āĻ¨,
- āĻĒā§āĻ°āĻĨāĻŽā§ website (āĻŽāĻžāĻ¨ā§ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ) Authorization Request āĻĒāĻžāĻ āĻžāĻŦā§ Google āĻāĻ° Authorization āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĨ¤
- Google response āĻĒāĻžāĻ āĻŋā§ā§ āĻŦāĻ˛āĻŦā§ Email āĻāĻŦāĻ Password āĻĻā§ā§āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
- Client Email āĻāĻŦāĻ Password āĻāĻžāĻāĻĒ āĻāĻ°ā§ āĻā§āĻāĻ˛ā§āĻ° Authorization āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻŦā§āĨ¤
- Google āĻāĻ Email āĻāĻŦāĻ Password āĻā§ āĻā§āĻ āĻāĻ°āĻŦā§ āĻ¯āĻĻāĻŋ āĻ āĻŋāĻ āĻšā§ āĻ¤āĻžāĻšāĻ˛ā§ google āĻāĻāĻāĻŋ Access Token response āĻāĻāĻžāĻ°ā§ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻ°āĻŦā§āĨ¤
- āĻ¤āĻžāĻ°āĻĒāĻ° client Access Token request āĻāĻ° header āĻāĻ° āĻ¸āĻžāĻĨā§ attach āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ°āĻŋāĻā§ā§ā§āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĨ¤
Netflix High Availability āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻāĻŋāĻĒāĻ¸ āĻļā§ā§āĻžāĻ° āĻāĻ°ā§āĻāĻŋāĻ˛(āĻ¯ā§āĻā§āĻ˛ā§ āĻāĻ°āĻž āĻ¨āĻŋāĻā§ follow āĻāĻ°ā§ āĻĨāĻžāĻā§) āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ āĻ¨ā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻžāĻā§ āĻ˛āĻžāĻāĻŦā§,
-
Regional deployment over global ones: Deployment āĻāĻŽāĻ°āĻž region by region āĻāĻ°āĻŦā§, āĻ¯āĻžāĻ¤ā§ region āĻ impact āĻāĻŋ observe āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ˛ā§ āĻāĻŽāĻ°āĻž Rollback āĻāĻ°ā§ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻ¸ā§āĻā§āĻ āĻ āĻāĻ˛ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§, āĻ¤āĻāĻ¨ āĻ āĻ¨ā§āĻ¯ region āĻāĻ° āĻāĻĒāĻ° āĻā§āĻ¨ā§ āĻ¨ā§āĻā§āĻāĻŋāĻ āĻāĻŽāĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒāĻ°āĻŦā§ āĻ¨āĻžāĨ¤
-
Use Blue/Green deployment strategy: āĻāĻ strategy āĻ¤ā§ Deploy āĻāĻ°āĻžāĻ° āĻ¸āĻŽā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻĻā§āĻāĻŋ āĻāĻžāĻ°ā§āĻ¸āĻ¨ āĻĨāĻžāĻā§, Blue āĻšāĻ˛ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻāĻžāĻ°ā§āĻ¸āĻ¨ āĻāĻŦāĻ green āĻšāĻ˛ āĻ¨āĻ¤ā§āĻ¨ āĻāĻžāĻ°ā§āĻ¸āĻ¨āĨ¤ Green āĻāĻžāĻ°ā§āĻ¸āĻ¨ āĻā§āĻ¸ā§āĻ āĻāĻ°āĻž āĻšā§ā§ āĻā§āĻ˛ā§, āĻ¸āĻŦāĻāĻŋāĻā§ āĻ āĻŋāĻ āĻĨāĻžāĻāĻ˛ā§ āĻāĻŽāĻ°āĻž Blue āĻāĻžāĻ°ā§āĻ¸āĻ¨ āĻĨā§āĻā§ āĻ¸āĻŦāĻāĻŋāĻā§ Green āĻāĻžāĻ°ā§āĻ¸āĻ¨ā§ āĻ¨āĻŋā§ā§ āĻ¯āĻžāĻŦāĨ¤
-
Use deployment windows: Deployment āĻāĻŽāĻ°āĻž office hour āĻāĻŦāĻ off-peak āĻāĻ° āĻ¸āĻŽā§ āĻāĻ°āĻŦāĨ¤
-
Enable Chaos Monkey: āĻāĻāĻŋ āĻāĻāĻāĻŋ Tool āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ° production āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻāĻ°ā§ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ¤ā§ āĻāĻ°ā§ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°āĻŦ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻāĻ¤ resilienceāĨ¤
-
Deploy exactly what you tested to production: āĻ¯ā§ āĻĒāĻžāĻ°ā§āĻ āĻāĻ° āĻā§āĻ¸ā§āĻāĻŋāĻ āĻāĻ°āĻž āĻšā§ āĻ¸ā§āĻ āĻĒāĻžāĻ°ā§āĻ Deploy āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
Original Post: https://netflixtechblog.medium.com/tips-for-high-availability-be0472f2599c