Skip to content

minhajul-im/system-design-bangla

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĄāĻŋāϜāĻžāχāύ āĻŦāĻžāĻ‚āϞāĻž

āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋ āϝ⧇āĻ–āĻžāύ⧇ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĄāĻŋāϜāĻžāχāύ āĻāϰ āĻŽā§ŒāϞāĻŋāĻ• āϜāĻŋāύāĻŋāϏāϗ⧁āϞ⧋ āύāĻŋā§Ÿā§‡ āφāϞ⧋āϚāύāĻž āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇āĨ¤

āĻāχ āϟāĻŋāωāĻŸā§‹āϰāĻŋ⧟āĻžāϞ āĻāϰ āωāĻĻā§āĻĻ⧇āĻļā§āϝ āφāĻĒāύāĻžāϕ⧇ āĻŽā§ŒāϞāĻŋāĻ• āϜāĻŋāύāĻŋāϏāϗ⧁āϞ⧋āϰ āϧāĻžāϰāĻŖāĻž āĻĻā§‡ā§ŸāĻžāĨ¤ āĻ­āĻžāϞ⧋ āϞāĻžāĻ—āϞ⧇ star, watch āĻ•āĻŋāĻ‚āĻŦāĻž fork āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧇ āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

System Design Wallpaper

āϏ⧂āϚāĻŋāĻĒāĻ¤ā§āϰ

Section 1: System Design

āϝāĻ–āύ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĄā§‡āϭ⧇āϞāĻĒ āĻ•āϰāĻŋ, āϤāĻ–āύ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĄāĻŋāϜāĻžāχāύ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰāĻž āϜāϰ⧁āϰāĻŋāĨ¤ āĻāϰ āĻĒā§āϰāϧāĻžāύ āĻ•āĻžāϰāĻŖ āĻšāϞ⧋, āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋ āϝāĻžāϤ⧇ āĻŦāĻ°ā§āϤāĻŽāĻžāύ⧇ āĻāĻŦāĻ‚ āĻ­āĻŦāĻŋāĻˇā§āϝāϤ⧇ āϕ⧋āύāĻ“ āϏāĻŽāĻ¸ā§āϝāĻž āĻ›āĻžā§œāĻžāχ āĻ­āĻžāϞāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇, āϝāĻĻāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋ āĻāĻ• āϏāĻŽā§Ÿ āĻĒā§āϰāϚ⧁āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻĒā§‡ā§Ÿā§‡ āĻĨāĻžāϕ⧇, āϤāĻ–āύ āĻāϟāĻŋ āĻĒā§āϰāϚ⧁āϰ āϞ⧋āĻĄ āϏāĻšā§āϝ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āϕ⧋āύ⧋ āĻ•āĻžāύ⧇āĻ•āĻļāύ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āύāϤāĻž āĻŦāĻž āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ⧇āϰ āĻ…āĻŦāύāϤāĻŋ āĻ›āĻžā§œāĻžāχ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāχ āϧāϰāύ⧇āϰ āĻĄāĻŋāϜāĻžāχāύāϕ⧇āχ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĄāĻŋāϜāĻžāχāύ āĻŦāϞāĻž āĻšā§ŸāĨ¤

(āĻāχ āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāĻ• āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĄāĻŋāϜāĻžāχāύ āĻŽā§‚āϞāϤ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āχāĻžā§āϜāĻŋāύāĻŋ⧟āĻžāϰāĻŋāĻ‚ āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒ⧃āĻ•ā§āϤāĨ¤)

Section 2: Database Engineering

āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻžāϰ āϏāĻŽā§Ÿ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āϖ⧁āĻŦāχ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻŋāώ⧟āĨ¤ āϕ⧋āύ āϕ⧋āύ āϰāĻ•āĻŽā§‡āϰ āĻāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻāϰ āϜāĻ¨ā§āϝ āϕ⧋āύ āϕ⧋āύ āϰāĻ•āĻŽā§‡āϰ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ, āĻĄā§‡āϟāĻžāĻŦ⧇āϏ⧇āϰ āĻŸā§‡āĻŦāĻŋāϞ⧇āϰ āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ āϕ⧇āĻŽāύ, āĻŸā§‡āĻŦāĻŋāϞ āĻ•āϞāĻžāĻŽ āĻāϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ, āĻŸā§‡āĻŦāĻŋāϞ size āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āϜāĻžāύāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻĻāϰāĻ•āĻžāϰāĨ¤

āĻāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĄā§‡āϭ⧇āϞāĻĒ āĻ•āϰāĻžāϰ āϏāĻŽā§Ÿ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāϜ āĻ…āύ⧁āϝāĻžā§Ÿā§€ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤ āϏāĻžāϧāĻžāϰāĻŖāϤ, āφāĻŽāϰāĻž āĻĒā§āϰāϧāĻžāύ āĻĻ⧁āχ āϧāϰāύ⧇āϰ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āĻŦā§āϝāĻžāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĨāĻžāĻ•āĻŋ - SQL(āϰāĻŋāϞ⧇āĻļāύāĻžāϞ) āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āĻāĻŦāĻ‚ NoSQL(āύāύ-āϰāĻŋāϞ⧇āĻļāύāĻžāϞ) āĻĄā§‡āϟāĻžāĻŦ⧇āϏāĨ¤ āφāĻŽāϰāĻž āϕ⧇āĻŽāύ āĻŦāĻž āϕ⧋āύ āϧāϰāϪ⧇āϰ āĻĄāĻžāϟāĻž āĻˇā§āĻŸā§‹āϰ āĻ•āϰāϤ⧇ āϚāĻžāχ, āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻˇā§āĻŸā§‹āϰ āĻ•āϰāϤ⧇ āϚāĻžāχ, āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāĻœā§‡āϰ āĻĒāĻĻā§āϧāϤāĻŋ āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻ…āύ⧁āϝāĻžā§Ÿā§€ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āĻŦāĻžāĻ›āĻžāχ āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤ āĻĄāĻžāϟāĻžāϰ āϧāϰāύ āĻ…āύ⧁āϝāĻžā§Ÿā§€ āĻĄā§‡āϟāĻžāĻŦ⧇āϏāϗ⧁āϞ⧋ āφāĻŽāĻžāĻĻ⧇āϰ āĻ­āĻŋāĻ¨ā§āύ āĻ­āĻŋāĻ¨ā§āύ āϏ⧁āĻŦāĻŋāϧāĻž āĻĻāĻŋā§Ÿā§‡ āĻĨāĻžāϕ⧇āĨ¤

SQL NoSQL
āĻŸā§‡āĻŦāĻŋāϞ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻĄāĻžāϟāĻž āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰāĻž āĻšā§Ÿ, āϝ⧇āĻ–āĻžāύ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϏāĻžāϰāĻŋ āĻāĻ•āϟāĻŋ āĻāĻ¨ā§āϟāĻŋāϟāĻŋ āĻāĻŦāĻ‚ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ•āϞāĻžāĻŽ āĻāĻ•āϟāĻŋ āĻĄāĻžāϟāĻžāϰ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āύāĻŋāĻĻ⧇āĻ°ā§āĻļāύ āĻ•āϰ⧇āĨ¤ āĻŸā§‡āĻŦāĻŋāϞāϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ⧇ relation āĻĨāĻžāϕ⧇āĨ¤ āϕ⧋āύ āĻĒā§āϰāĻ•āĻžāϰ relation āĻ›āĻžā§œāĻž āĻĄāĻžāϟāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύāĻ­āĻžāĻŦ⧇ āĻˇā§āĻŸā§‹āϰ āĻ•āϰ⧇ āĻĨāĻžāϕ⧇āĨ¤ āϝ⧇āĻŽāύāσ key-value, graph, document āχāĻ¤ā§āϝāĻžāĻĻāĻŋāĨ¤
āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻ…āύ⧁āϝāĻžā§Ÿā§€ āĻĄāĻžāϟāĻž āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤ (āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻĒāϰāĻŦāĻ°ā§āϤ⧀āϤ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤) NoSQL āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇ āĻĄāĻžāχāύāĻžāĻŽāĻŋāĻ• āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻĨāĻžāϕ⧇, āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϝ⧋āĻ—ā§āϝāĨ¤

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻĄā§‡āϟāĻžāĻŦ⧇āϏ

Section 3: Database Transaction

āĻĄāĻžāϟāĻžāĻŦ⧇āϜ āĻŸā§āϰāĻžāύāϜāĻžāĻ•āĻļāύ āĻāχ āϏāĻŽāĻ¸ā§āϤ āĻĒā§āϰāĻļā§āύ āĻŦāĻž āϏāĻŽāĻ¸ā§āϝāĻžāϰ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇:

  • āĻĄāĻžāϟāĻžāĻŦ⧇āϜ āϏāĻĢāϟāĻ“āϝāĻŧā§āϝāĻžāϰ āĻŦāĻž āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ āϝ⧇ āϕ⧋āύ⧋ āϏāĻŽāϝāĻŧ fail āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ (write āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āĻŽāĻžāĻāĻ–āĻžāύ⧇āĻ“)

  • āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ āĻŦāĻžāϧāĻž āφāϏāϤ⧇ āĻĒāĻžāϰ⧇, āϝāĻž āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϕ⧇ āĻĄāĻžāϟāĻžāĻŦ⧇āϜ āĻĨ⧇āϕ⧇ āĻ…āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤāĻ­āĻžāĻŦ⧇ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

  • āĻāĻ•āĻžāϧāĻŋāĻ• āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻ•āχ āĻāĻ¨ā§āĻŸā§āϰāĻŋ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āϝāĻžāϰ āĻĢāϞ⧇ āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϗ⧁āϞāĻŋ āĻ“āĻ­āĻžāϰāϰāĻžāχāϟ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

  • āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĄāĻžāϟāĻžāĻŦ⧇āϜ āĻĨ⧇āϕ⧇ āĻāĻŽāύ āϤāĻĨā§āϝ āĻĒāĻĄāĻŧāϤ⧇ āĻĒāĻžāϰ⧇ āϝāĻž āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ Commit āĻ•āϰāĻž āĻšāϝāĻŧāύāĻŋ, āĻĢāϞ⧇ āϤāĻĨā§āϝāϟāĻŋ āĻ…āĻĒā§āϰāĻžāϏāĻ™ā§āĻ—āĻŋāĻ• āĻŦāĻž āĻ…āϏāĻ‚āĻ—āϤāĻŋāĻĒā§‚āĻ°ā§āĻŖ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

  • āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāĻĻ⧇āϰ āĻŽāĻ§ā§āϝ⧇ concurrency āĻŦāĻž race condition āĻāϰ āĻ•āĻžāϰāϪ⧇ āĻ…āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ āĻŦāĻžāĻ— āϤ⧈āϰāĻŋ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āωāĻĒāϰ⧇āϰ āĻĒā§Ÿā§‡āĻ¨ā§āϟāϗ⧁āϞ⧋āϰ āωāĻ¤ā§āϤāϰ āĻĒ⧇āϤ⧇ āĻšāϞ⧇ āύāĻŋāĻšā§‡āϰ āϟāĻĒāĻŋāĻ•āϗ⧁āϞ⧋ āĻŦ⧁āĻāϤ⧇ āĻšāĻŦ⧇āĨ¤

āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇ Transaction āĻŦāϞāϤ⧇ āĻŦā§‹āĻāĻžā§Ÿ āĻāĻ•āĻžāϧāĻŋāĻ• READ āĻāĻŦāĻ‚ WRITE āĻ…āĻĒāĻžāϰ⧇āĻļāύāϕ⧇ āĻāĻ•āϟāĻŋ āϞāϜāĻŋāĻ•ā§āϝāĻžāϞ āχāωāύāĻŋāϟ āĻāϰ āĻŽāĻ§ā§āϝ⧇ āφāĻŦāĻĻā§āϧ āĻ•āϰāĻžāĨ¤ āĻāϰ āĻĢāϞ⧇, āϏāĻŽāĻ¸ā§āϤ READ āĻāĻŦāĻ‚ WRITE āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻāĻ•āϏāĻžāĻĨ⧇ āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦāĻŋāĻŦ⧇āϚāĻŋāϤ āĻšā§ŸāĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž, āϝāĻĻāĻŋ āϏāĻŦ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻšā§Ÿ, āϤāĻŦ⧇ COMMIT āĻ•āϰāĻž āĻšāĻŦ⧇, āφāϰ āϝāĻĻāĻŋ āϕ⧋āύ⧋ āĻāĻ•āϟāĻŋ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻŦā§āϝāĻ°ā§āĻĨ āĻšā§Ÿ, āϤāĻŦ⧇ ROLLBACK āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĒā§‚āĻ°ā§āĻŦ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĢāĻŋāϰāĻŋā§Ÿā§‡ āύ⧇āĻ“ā§ŸāĻž āĻšāĻŦ⧇āĨ¤

āϏāĻžāϧāĻžāϰāĻŖāϤ Transaction āĻāĻ­āĻžāĻŦ⧇ āĻļ⧁āϰ⧁ āĻšā§Ÿ,

BEGIN

SELECT * FROM users
UPDATE users SET username=“lahin” WHERE id=224

COMMIT

āφāĻĒāύāĻŋ Prisma āĻĻāĻŋā§Ÿā§‡ āϞāĻŋāĻ–āϤ⧇ āϗ⧇āϞ⧇,

await prisma.$transaction(async (prisma) => {
  const users = await prisma.users.findMany();

  await prisma.user.update({
    where: { id: 224 },
    data: { username: "lahin" },
  });
});

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻŸā§āϰāĻžāύāϏāĻžāĻ•āĻļāĻžāύ

Section 4: Client Server Architecture

āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻ¸ā§āϟ āĻ•āϰāĻŦ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϕ⧇ āĻ•āĻŋāϛ⧁ āĻ¸ā§āĻĒ⧇āϏāĻŋāĻ•āĻŋāĻĢ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻāϰ āϜāĻ¨ā§āϝ, āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏ⧇āχ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻ¸ā§āϟ āĻĒāĻžāĻ“ā§ŸāĻžāϰ āĻĒāϰ āϏ⧇ āϤāĻžāϰ āϝāĻžāĻŦāĻ¤ā§€ā§Ÿ āĻĒā§āϰāϏ⧇āϏ āĻļ⧇āώ āĻ•āϰ⧇ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟāϕ⧇ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻĻāĻŋā§Ÿā§‡ āĻĻāĻŋāĻŦ⧇, āĻāϟāĻŋ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰāĨ¤

Client Server Architecture

āφāĻŽāĻžāĻĻ⧇āϰ āϏāĻŦ āωāĻĻāĻžāĻšāϰāĻŖ āĻĨāĻžāĻ•āĻŦ⧇ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇āĨ¤

Section 5: Reliability

āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϝāĻĻāĻŋ āϕ⧋āύ⧋ āĻĒā§āϰāĻ•āĻžāϰ⧇āϰ Fault/Error āĻĨāĻžāĻ•āĻžāϰ āĻĒāϰāĻ“ āĻ­āĻžāϞ⧋āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻ•āĻŋāĻ‚āĻŦāĻž āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋ āϝāĻĻāĻŋ āĻŦāĻ¨ā§āϧ āύāĻž āĻšā§Ÿ, āϤāĻŦ⧇ āϏ⧇āχ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋ ReliableāĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āĻŽāύ⧇ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇ āĻāĻ• āĻŦāĻž āĻāĻ•āĻžāϧāĻŋāĻ• Fault āĻāϰ āĻ•āĻžāϰāϪ⧇ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ Failure āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

Fault āĻāϰāĻ•āĻŽ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āϕ⧋āύ⧋ user āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋ āϕ⧇ āĻāĻŽāύāĻ­āĻžāĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āϛ⧇ āϝāĻžāϤ⧇ āϕ⧋āύ⧋ Failure āĻšā§Ÿā§‡ āϗ⧇āϞ, āϏ⧇āϟāĻž āχāĻšā§āĻ›āĻžāĻ•ā§ƒāϤ āĻŦāĻž āĻ…āύāĻŋāĻšā§āĻ›āĻžāĻ•ā§ƒāϤāĻ­āĻžāĻŦ⧇āĻ“ āĻšāϤ⧇ āĻĒāĻžāϰ⧇, āϤāĻ–āύ āϝāĻĻāĻŋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋ āĻŦāĻ¨ā§āϧ āύāĻž āĻšā§Ÿā§‡ āϕ⧋āύ⧋ āĻĒā§āϰāĻ•āĻžāϰ⧇āϰ Warning message āĻĻ⧇āĻ–āĻžāϞ⧋ āϤāĻ–āύ āϏ⧇āχ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋāϕ⧇ āφāĻŽāϰāĻž Reliable āĻŦāϞāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āϰāĻŋāϞāĻžāχāĻŦāĻŋāϞāĻŋāϟāĻŋ

Section 6: 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 7: Distributed System

āĻāĻ•āĻžāϧāĻŋāĻ• āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ (āĻŦāĻž āĻ•āĻŽā§āĻĒā§‹āύ⧇āĻ¨ā§āϟ) āĻāĻ•āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āĻĢāϞ⧇ āϕ⧋āύ āĻ•āĻžāϜ āĻļ⧇āώ āĻšā§Ÿ āĻāĻŦāĻ‚ End User āĻāϰ āĻ•āĻžāϛ⧇ āĻāĻ•āϟāĻŋ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ (āĻŦāĻž āĻ•āĻŽā§āĻĒā§‹āύ⧇āĻ¨ā§āϟ) āĻšāĻŋāϏ⧇āĻŦ⧇ āφāϏ⧇, āϏ⧇āχ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋ āĻšāϞ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻŸā§‡āĻĄ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāĨ¤ āĻāχ āĻŽā§‡āĻļāĻŋāύāϗ⧁āϞ⧋āϤ⧇ āĻļā§‡ā§ŸāĻžāĻ°ā§āĻĄ āĻ¸ā§āĻŸā§‡āϟ(Shared State) āĻĨāĻžāϕ⧇, āĻ•āĻ™ā§āĻ•āĻžāϰ⧇āĻ¨ā§āϟāϞāĻŋ (Concurrently) āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āĻĒā§āϰāϤāĻŋāϟāĻŋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āϏāĻžāĻĨ⧇ Information āĻļā§‡ā§ŸāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤

āĻŦāĻ°ā§āϤāĻŽāĻžāύ āϏāĻŽā§Ÿā§‡ Distributed System āĻāϰ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāϞ YouTubeāĨ¤

YouTube āϕ⧇āύ?

  • āϏāĻžāĻ°ā§āĻ­āĻžāϰ User āĻĨ⧇āϕ⧇ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻ¸ā§āϟ āĻĒāĻžā§Ÿ Video Upload āĻ•āĻŋāĻ‚āĻŦāĻž Video Watch āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤
  • āĻ­āĻŋāĻĄāĻŋāĻ“ āĻāύāϕ⧋āĻĄāĨ¤
  • āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāĨ¤

āĻāϗ⧁āϞ⧋ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻŽāĻŋāϞ⧇ Distributed System YouTube āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤

Section 8: 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) āĻāϰ Authoritative Server āĻāϰ āϤāĻĨā§āϝ āύāĻŋāĻœā§‡āϰ āĻŽāĻ§ā§āϝ⧇ āϰāĻžāϖ⧇āĨ¤

      • āϏāĻžāϧāĻžāϰāĻŖ top-level domains: .com, .org, .gov
      • āĻĻ⧇āĻļā§€ā§Ÿ code top-level domains: .jp, .uk, .bd
    • Authoritative Server, āĻāχ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āϏ⧇āχ Human Readable Domain (āϝ⧇āĻŽāύ www.google.com) āĻāϰ IP āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāĨ¤

DNS

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻĄā§‹āĻŽā§‡āχāύ āύ⧇āχāĻŽ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ

Section 9: Transmission Control Protocol

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

TCP āĻŽā§‚āϞāϤ Networking āĻāϰ OSI Model āĻāϰ Practical FormāĨ¤ āĻāϟāĻŋ Transport Layer āĻĨ⧇āϕ⧇ āĻļ⧁āϰ⧁ āĻšā§Ÿ āĻāĻŦāĻ‚ Application Layer āĻ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤

HTTP, Web Socket, FTP āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āĻŽā§‚āϞāϤ TCP āϤ⧇ āϚāϞ⧇āĨ¤

Section 10: User Datagram Protocol

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 āĻšā§Ÿ āύāĻžāĨ¤

udp

UDP āĻāϰ use-cases:

  • Real-time Communication; āωāĻĻāĻžāĻšāϰāĻŖ: Skype, Zoom.
  • Live Video Streaming; āωāĻĻāĻžāĻšāϰāĻŖ: Twitch, ESPN+.
  • Online Gaming; āωāĻĻāĻžāĻšāϰāĻŖ: Call of Duty.

UDP āϞāĻžāχāĻ­ āĻ­āĻŋāĻĄāĻŋāĻ“ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧ, āĻ•āĻžāϰāĻŖ Live āχāϭ⧇āĻ¨ā§āĻŸā§‡āϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒā§āϰāϚāĻžāϰāϟāĻŋ sync āϰāĻžāĻ–āĻž āĻŦ⧇āĻļāĻŋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āύāĻžāĨ¤ UDP āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āϝāĻĻāĻŋ āĻ•āĻŋāϛ⧁ āĻĢā§āϰ⧇āĻŽ āĻšāĻžāϰāĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧ, āϏ⧇āϗ⧁āϞ⧋ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĒā§āϰ⧇āϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻžāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖ,

āφāĻĒāύāĻŋ āĻŦāĻŋāĻĒāĻŋāĻāϞ (āĻ•ā§āϰāĻŋāϕ⧇āϟ) āĻĻ⧇āĻ–āϛ⧇āύāĨ¤ āĻ“āĻ­āĻžāϰ ā§§.⧍-āϤ⧇ āĻšāĻ āĻžā§Ž āĻŦāĻžāĻĢāĻžāϰāĻŋāĻ‚ āĻļ⧁āϰ⧁ āĻšāϞ⧋, āφāϰ āĻāĻ–āύ āĻ“āĻ­āĻžāϰ ā§§.ā§Ē āϚāϞāϛ⧇āĨ¤ āĻ“āχ āĻĻ⧁āχ āĻŦāϞ āύāĻŋāϝāĻŧ⧇ āφāĻĒāύāĻŋ āϤ⧇āĻŽāύ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāϛ⧇āύ āύāĻžāĨ¤ āφāĻĒāύāĻŋ āĻĒāϰ⧇āϰ āĻŦāϞ āĻĻ⧇āĻ–āϛ⧇āύāĨ¤ āĻāϟāĻŋ āĻšāĻšā§āϛ⧇ UDPāĨ¤

Section 11: HTTP, TLS and HTTPS

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 āĻšā§Ÿā§‡ āĻĨāĻžāϕ⧇āĨ¤

http and https

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻāχāϚāϟāĻŋāϟāĻŋāĻĒāĻŋ, āϟāĻŋāĻāϞāĻāϏ āĻāĻŦāĻ‚ āĻāχāϚāϟāĻŋāϟāĻŋāĻĒāĻŋ'āĻāϏ

Section 12: What happens when you type a URL in your browser

what happens

(āĻ›āĻŦāĻŋāϟāĻŋ āχāĻ¨ā§āϟāĻžāϰāύ⧇āϟ āĻĨ⧇āϕ⧇ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāĻž)āĨ¤ āφāĻĒāύāĻŋ āϝāĻ–āύ āφāĻĒāύāĻžāϰ āĻŦā§āϰāĻžāωāϜāĻžāϰ āĻāϰ Address Bar āĻ URL āϟāĻžāχāĻĒ āĻ•āϰ⧇ enter press āĻ•āϰāĻŦ⧇āύ, āφāĻĒāύāĻžāϰ āĻŦā§āϰāĻžāωāϜāĻžāϰ āĻĒā§āϰāĻĨāĻŽā§‡ āφāĻĒāύāĻžāϰ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟāϟāĻŋāϕ⧇ DNS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ āĻĒāĻžāĻ āĻŋā§Ÿā§‡ āĻĻāĻŋāĻŦ⧇ āϤāĻžāϰāĻĒāϰ āĻĻ⧇āĻ–āĻŦ⧇ DNS cache āĻāϰ āĻ­āĻŋāϤāϰ āϏ⧇āχ URL āĻāϰ IP āĻāĻĄā§āϰ⧇āϏ āφāϛ⧇ āĻ•āĻŋ āύāĻžāĨ¤ āϝāĻĻāĻŋ āύāĻž āĻĨāĻžāϕ⧇ āϤāĻžāĻšāϞ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ steps āĻļ⧇āώ āĻ•āϰāĻžāϰ āĻĒāϰ DNS āϏ⧇āχ URL āĻāϰ IP āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰāĻŦ⧇āĨ¤

āϤāĻžāϰāĻĒāϰ 3-way handshake āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ IP address āĻāϰ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāϰ āϏāĻžāĻĨ⧇ TCP āĻ•āĻžāύ⧇āĻ•āĻļāύ āϤ⧈āϰ⧀ āĻšāĻŦ⧇āĨ¤

āĻĒāϰāĻŦāĻ°ā§āϤ⧀āϤ⧇ browser TCP āĻ•āĻžāύ⧇āĻ•āĻļāύ āĻāϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ āϏ⧇āχ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ HTTP āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āĻ•āϰ⧇āĨ¤

āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āĻĒā§āϰāϏ⧇āϏ āĻ•āϰ⧇ āϤāĻžāϰāĻĒāϰ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇ āĻĨāĻžāϕ⧇āĨ¤ āĻŦā§āϰāĻžāωāϜāĻžāϰ āϏ⧇āχ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āϕ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ¸ā§āĻŸā§‡āĻĒ āĻļ⧇āώ āĻ•āϰ⧇ āĻŦā§āϰāĻžāωāϜāĻžāϰ⧇ āĻĻ⧇āĻ–āĻžā§ŸāĨ¤

Section 13: Concurrency and Parallelism

Concurrency āĻāĻŦāĻ‚ Parallelism āĻŦ⧁āĻāϤ⧇ āĻšāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ Process āĻāĻŦāĻ‚ Thread āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāϰ āφāϞ⧋āϕ⧇ āĻŦ⧁āĻāϤ⧇ āĻšāĻŦ⧇āĨ¤

Process āĻ•āĻŋ? āĻāĻ•āϟāĻŋ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ(code) āϝāĻ–āύ execution āĻ…āĻŦāĻ¸ā§āĻĨāĻžā§Ÿ āĻĨāĻžāϕ⧇, āϤāĻ–āύ āϏ⧇āϟāĻŋ āĻāĻ•āϟāĻŋ ProcessāĨ¤ āĻāϟāĻŋ āĻāĻŽāύ āĻāĻ•āϟāĻŋ environment āĻŦāĻž container, āϝ⧇āĻ–āĻžāύ⧇ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ āϏāĻŽāĻ¸ā§āϤ āϰāĻŋāϏ⧋āĻ°ā§āϏ (āϝ⧇āĻŽāύ, CPU āϟāĻžāχāĻŽ, āĻŽā§‡āĻŽāϰāĻŋ) āĻŦāϰāĻžāĻĻā§āĻĻ āĻ•āϰāĻž āĻšā§Ÿ āĻāĻŦāĻ‚ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāϟāĻŋ āϚāĻžāϞāĻžāύ⧋(execute) āĻšā§ŸāĨ¤

Thread āĻ•āĻŋ? āĻāϟāĻŋ āĻŽā§‚āϞāϤ Process āĻāϰ SubsetāĨ¤ āĻāϕ⧇ Independent Execution Unit āĻ“ āĻŦāϞāĻž āĻšā§ŸāĨ¤ āĻāĻ•āϟāĻŋ Process-āĻ āĻāĻ• āĻŦāĻž āĻāĻ•āĻžāϧāĻŋāĻ• Thread āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇, Thread āĻŽā§‚āϞāϤ Process āĻāϰ Shared Resource āϗ⧁āϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĨāĻžāϕ⧇āĨ¤ āϤāĻžāϰ āĻ•āĻžāϜ āĻšāĻšā§āϛ⧇ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āĻāϰ āĻ…āĻĒāĻžāϰ⧇āĻļāύāϗ⧁āϞ⧋āϕ⧇ Concurrently āĻ•āĻŋāĻ‚āĻŦāĻž Parallelly(core āĻāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇) execute āĻ•āϰāĻžāĨ¤

Thread āĻ­āĻžāϞ⧋āĻ­āĻžāĻŦ⧇ āĻŦ⧁āĻāĻžāϰ āϜāĻ¨ā§āϝ Concurrency āĻāĻŦāĻ‚ Parallelism āĻŦ⧁āĻāĻž āϝāĻžāĻ•āĨ¤

Concurrency āĻ•āĻŋ? Concurrency āĻšāĻšā§āϛ⧇ Thread āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻ•āĻžāϜ āĻĨ⧇āĻŽā§‡ āĻĨ⧇āĻŽā§‡ āĻāĻ•āϏāĻ™ā§āϗ⧇ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻšāĻšā§āϛ⧇, āϝāĻĻāĻŋ ā§§āϟāĻŋ CPU āϕ⧋āϰ āĻĨāĻžāϕ⧇āĨ¤

āϧāϰ⧁āύ CPU āϕ⧋āϰ āĻšāĻšā§āϛ⧇ ā§§āϟāĻŋ, āĻāĻ•āĻžāϧāĻŋāĻ• āĻ•āĻžāϜ Thread āĻāϰ āĻŽāĻ§ā§āϝ⧇ āϝāĻ–āύ āĻĨāĻžāϕ⧇, āϤāĻ–āύ Context Switching āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ CPU āĻĻā§āϰ⧁āϤāĻ­āĻžāĻŦ⧇ āĻāϕ⧇ āĻ…āĻĒāϰāϕ⧇ āϏāĻŽāϝāĻŧ āĻ­āĻžāĻ— āĻ•āϰ⧇, āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻāĻ•āϟāĻŋ āĻ•āĻžāϜ āĻĨ⧇āĻŽā§‡ CPU āĻ…āĻ¨ā§āϝ āĻ•āĻžāϜ āĻļ⧁āϰ⧁ āĻ•āϰ⧇, āϤāĻžāϰāĻĒāϰ āφāĻŦāĻžāϰ āϏ⧇āχ āĻ•āĻžāϜ āĻĒ⧁āύāϰāĻžā§Ÿ āϚāĻžāϞ⧁ āĻ•āϰ⧇ āϝāϤāĻĻā§‚āϰ āĻĒā§‚āĻ°ā§āĻŦ⧇āϰ execution āĻ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻšā§Ÿā§‡āϛ⧇, āϤāĻžāϰāĻĒāϰ⧇āϰ āĻ…āĻ‚āĻļ āĻĨ⧇āϕ⧇ āφāĻŦāĻžāϰ āĻļ⧁āϰ⧁ āĻšā§ŸāĨ¤

āϝāϤāĻ•ā§āώāĻŖ āύāĻž āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āϏāĻŦ āĻ•āĻžāϜ āĻļ⧇āώ āĻšāĻšā§āϛ⧇, āĻāϰāĻ•āĻŽ āϚāϞāϤ⧇ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤

Concurrency

Parallelism āĻ•āĻŋ? āĻāĻ•āĻžāϧāĻŋāĻ• āĻ•āĻžāϜ āĻāĻ•āχ āϏāĻŽā§Ÿā§‡ āφāϞāĻžāĻĻāĻžāĻ­āĻžāĻŦ⧇/āĻ¸ā§āĻŦāĻžāϧ⧀āύāĻ­āĻžāĻŦ⧇ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻ•āϰāĻž, āĻāĻŦāĻ‚ āĻāϟāĻŋ āϏāĻŽā§āĻ­āĻŦ āϝāĻ–āύ āĻāĻ•āĻžāϧāĻŋāĻ• CPU core āĻĨāĻžāϕ⧇āĨ¤

āϧāϰ⧁āύ CPU āϕ⧋āϰ āĻšāĻšā§āϛ⧇ ⧍āϟāĻŋ, āĻāĻ•āĻžāϧāĻŋāĻ• āĻ•āĻžāϜ Thread āϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ⧇ execute āĻšāĻŦ⧇āĨ¤

Parallelism

āĻāĻ•āĻžāϧāĻŋāĻ• āϕ⧋āϰ āĻāϰ āĻŽāĻ§ā§āϝ⧇āĻ“ Concurrency āĻšā§Ÿā§‡ āĻĨāĻžāϕ⧇āĨ¤ āĻ•āĻ–āύ?

āϝāĻ–āύ āϏāĻŦ Thread āĻŦā§āϝāĻ¸ā§āϤ āĻšā§Ÿā§‡ āĻĒ⧜āĻŦ⧇ āϤāĻ–āύ āĻ…āĻ¨ā§āϝ Task āϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ Context Switching āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ Task āϗ⧁āϞ⧋ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤

Parallelism āωāĻĻāĻžāĻšāϰāĻŖ I/O bound task āĻāϰ āϜāĻ¨ā§āϝ Node.js āĻĻāĻŋā§Ÿā§‡,

const fetch = require("node-fetch");

async function fetchData() {
  const urls = [
    "https://jsonplaceholder.typicode.com/posts/1",
    "https://jsonplaceholder.typicode.com/posts/2",
    "https://jsonplaceholder.typicode.com/posts/3",
  ];

  const promises = urls.map((url) => fetch(url).then((res) => res.json()));

  const results = await Promise.all(promises); // Parallel Execution

  console.log(results);
}

fetchData();

Node.js Parallel Execution āĻāϰ āϜāĻ¨ā§āϝ Worker Threads, Child Processes, Cluster module āĻ°ā§Ÿā§‡āϛ⧇āĨ¤

Section 14: High Concurrency Control

High Concurrency āĻŽāĻžāύ⧇ āĻšāĻšā§āϛ⧇, āϝāĻ–āύ āĻāĻ•āĻžāϧāĻŋāĻ• user āĻ•āĻŋāĻ‚āĻŦāĻž āĻāĻ•āĻžāϧāĻŋāĻ• process āĻāĻ•āχ āϏāĻŽā§Ÿ/āĻāĻ•āχ āĻŽā§āĻšā§‚āĻ°ā§āϤ⧇ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ•āĻŋāĻ‚āĻŦāĻž āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĄāĻžāϟāĻž modify āĻ•āϰāϤ⧇ āϝāĻžā§ŸāĨ¤ āĻāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻ…āύ⧇āĻ• āϏāĻŽāĻ¸ā§āϝāĻž āϏ⧃āĻˇā§āϟāĻŋ āĻšāϤ⧇ āĻĒāĻžāϰ⧇, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāĻšā§āϛ⧇ Data InconsistencyāĨ¤

(āϚāϞāĻŽāĻžāύ)

Section 15: 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 16: Back Of the Envelope Estimation

āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻŸā§‡āĻ•āύāĻŋāĻ• āϝāĻž āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĄāĻŋāϜāĻžāχāύ āĻāϰ Load Balancer, CDN āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦā§‹ āĻ•āĻŋ āύāĻž āϤāĻžāϰ āφāύ⧁āĻŽāĻžāύāĻŋāĻ• āϧāĻžāϰāύāĻž āĻšāĻŋāϏāĻžāĻŦ āĻ•āϰ⧇ āĻŦāϞ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻŦā§āϝāĻžāĻ• āĻ…āĻĢ āĻĻāĻž āĻāύāϭ⧇āϞāĻĒ āĻāĻ¸ā§āϟāĻŋāĻŽā§‡āĻļāύ

Section 17: Authentication and Authorization

āĻāĻ•āϟāĻŋ secured āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ design āĻ•āϰāϤ⧇ āĻšāϞ⧇ Authentication āĻāĻŦāĻ‚ Authorization āϜāĻžāύāĻž āĻ…āĻ¤ā§āϝāĻ¨ā§āϤ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤ Authentication āĻŽā§‚āϞāϤ identity verify āĻ•āϰāĻžāϕ⧇ āĻŦ⧁āϜāĻžā§ŸāĨ¤ āφāĻŽāϰāĻž āϝāĻ–āύ āϕ⧋āύ⧋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ—āĻŋā§Ÿā§‡ āχāĻŽā§‡āχāϞ āĻāĻŦāĻ‚ āĻĒāĻžāϏāĻ“ā§ŸāĻžāĻ°ā§āĻĄ āĻĻāĻŋā§Ÿā§‡ āϞāĻ—āχāύ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻŋ, āϏ⧇āχ āχāĻŽā§‡āχāϞ āφāϰ āĻĒāĻžāϏāĻ“ā§ŸāĻžāĻ°ā§āĻĄ āϭ⧇āϰāĻŋāĻĢāĻžāχ āĻ•āϰ⧇ āĻšāĻšā§āϛ⧇ AuthenticationāĨ¤

Authorization āĻšāϞ⧋ āϕ⧋āύ⧋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϰāĻŋāϏ⧋āĻ°ā§āϏ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ user āĻāĻ•ā§āϏ⧇āϏ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇ āĻ•āĻŋ āύāĻž āϤāĻž āĻŦ⧁āĻāĻžā§ŸāĨ¤ āϝ⧇āĻŽāύ āϕ⧋āύ⧋ āĻāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ API āĻĨāĻžāϕ⧇ āϝāĻž āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§ā§° āĻāĻĄāĻŽāĻŋāύāĻŋāĻ¸ā§āĻŸā§āϰ⧇āϟāϰ āĻŽāĻžāύ⧁āώ āĻ›āĻžā§œāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇ āύāĻž, āĻāĻ–āύ āϝāĻĻāĻŋ āϕ⧇āω āĻāĻ•ā§āϏ⧇āϏ āĻ•āϰāϤ⧇ āϚāĻžā§Ÿ āϤāĻžāĻšāϞ⧇ āϏ⧇āχ āĻŽāĻžāύ⧁āώāϟāĻž Authorize āφāϛ⧇ āĻ•āĻŋ āύāĻž āϏ⧇āϟāĻžāχ āϝāĻžāϚāĻžāχ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇ AuthorizationāĨ¤

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻ…āĻĨ⧇āύāϟāĻŋāϕ⧇āĻļāύ āĻāĻŦāĻ‚ āĻ…āĻĨāϰāĻŋāϜāĻžāĻļāύ

Section 18: 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 19: Proxy

āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āϝāĻ–āύ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϕ⧇ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻ¸ā§āϟ āĻĒāĻžāĻ āĻžāύ⧋āϰ āϏāĻŽā§Ÿ āϏāϰāĻžāϏāϰāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϕ⧇ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻ¸ā§āϟ āύāĻž āĻ•āϰ⧇ āĻ…āĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϰ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻ¸ā§āϟ āĻ•āϰāϞ⧇, āϏ⧇āχ āĻĒā§āϰāϏ⧇āϏ āĻšāĻšā§āϛ⧇ āĻĒā§āϰāĻ•ā§āϏāĻŋ āĻāĻŦāĻ‚ āϝ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĻāĻŋā§Ÿā§‡ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻ¸ā§āϟ āĻ•āϰāĻŦ⧇ āϏ⧇āϟāĻž āĻšāĻšā§āϛ⧇ āĻĒā§āϰāĻ•ā§āϏāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰāĨ¤

āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻœā§€āĻŦāύ⧇ āĻĒā§āϰāĻ•ā§āϏāĻŋāϰ āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻšā§āϛ⧇ NGINXāĨ¤

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻĒā§āϰāĻ•ā§āϏāĻŋ

Section 20: REST Api

REST Api āϜāĻžāύāĻžāϰ āĻĒā§‚āĻ°ā§āĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦ⧁āĻāϤ⧇ āĻšāĻŦ⧇ āϰ⧇āĻ¸ā§āϟ(REST) āĻŽāĻžāύ⧇ āĻ•āĻŋ, REST āĻŽāĻžāύ⧇ āĻšāϞ Representational State Transfer āϝāĻžāϰ āĻŽāĻžāύ⧇ āĻĻāĻžā§œāĻžā§Ÿ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰāĻžāϞ āĻ¸ā§āϟāĻžāχāϞ āϝāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿ āĻ¸ā§āĻŸā§‡āϟ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĢāĻžāϰ āĻāϰ āϜāĻ¨ā§āϝāĨ¤ āĻāĻ–āύ REST Api āĻšāϞ, āĻāĻ• āĻĒā§āϰāĻ•āĻžāϰ⧇āϰ āĻāĻĒāĻŋāφāχ āĻ•āύāϭ⧇āύāĻļāύ āϝāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿ āĻĻ⧁āϟāĻŋ āĻāĻ¨ā§āĻĄ(āϝ⧇āĻŽāύāσ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ) āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻ¸ā§āĻŸā§‡āϟ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĢāĻžāϰ āĻ•āϰāĻžāϕ⧇ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤

āĻ¸ā§āĻŸā§‡āϟ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĢāĻžāϰ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻ•āĻŋāϛ⧁ āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāĻ• HTTP Methods āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿ, GET, POST, PUT, PATCH & DELETE, āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŽā§āϝāĻžāĻĨā§‹āĻĄā§‡āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āϜāĻžāύāϤ⧇ REST Api āϏ⧇āĻ•āĻļāύ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύāĨ¤

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āϰ⧇āĻ¸ā§āϟ āĻāĻĒāĻŋāφāχ

Section 21: Scalability

āĻ¸ā§āϕ⧇āϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āĻ•ā§āώāĻŽāϤāĻžāϕ⧇ āĻŦ⧁āĻāĻžā§Ÿ āϝāĻ–āύ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻŸā§āϰāĻžāĻĢāĻŋāϕ⧇āϰ āĻĒāϰāĻŋāĻŽāĻžāĻŖ āĻŦāĻžā§œāϤ⧇ āĻĨāĻžāϕ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖ āĻŦāϞāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āĻāĻ•āϟāĻŋ āĻ“ā§Ÿā§‡āĻŦāϏāĻžāχāĻŸā§‡āϰ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇ āĻāĻ–āύ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĒāϰāĻŋāĻŽāĻžāĻŖ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻ¸ā§āϟ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇ āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāϜ āĻĨ⧇āϕ⧇ ā§Ģ āĻŽāĻžāϏ āĻĒāϰ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻ¸ā§āϟ ⧍ āϗ⧁āĻŖ āĻšā§Ÿā§‡ āϗ⧇āϞ āϤāĻžāϰ āĻ āĻŋāĻ• āφāϰāĻ“ ā§Ģ āĻŽāĻžāϏ āĻĒāϰ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻ¸ā§āϟ ā§Ē āϗ⧁āĻŖ āĻšā§Ÿā§‡ āϗ⧇āϞ, āĻāĻ•āϟāĻž āϏāĻŽā§Ÿ āĻĻ⧇āĻ–āĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāϤ āĻĒāϰāĻŋāĻŽāĻžāĻŖ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻ¸ā§āϟ āϞ⧋āĻĄ āύāĻŋāϤ⧇ āĻĒāĻžāϰāϛ⧇ āύāĻž, āĻāχ āϏāĻŽāĻ¸ā§āϝāĻžāϰ āϏāĻŽāĻžāϧāĻžāύ⧇āϰ āϜāĻ¨ā§āϝ āĻ¸ā§āϕ⧇āϞ āĻ•āϰāĻžāϕ⧇ āĻ¸ā§āϕ⧇āϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āĻŦāϞ⧇āĨ¤

āĻ¸ā§āϕ⧇āϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ 2 āĻĒā§āϰāĻ•āĻžāϰ⧇āϰ, āĻ­āĻžāĻ°ā§āϟāĻŋāĻ•āĻžāϞ āĻ¸ā§āϕ⧇āϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ (Vertical Scalability) āĻāĻŦāĻ‚ āĻšāϰāĻžāχāϜāĻ¨ā§āϟāĻžāϞ āĻ¸ā§āϕ⧇āϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ (Horizontal Scalability)āĨ¤

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻ¸ā§āϕ⧇āϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ

Section 22: Database Sharding

Database Sharding āĻšāϞ āĻŸā§‡āĻŦāĻŋāϞ āĻĨ⧇āϕ⧇ āĻĄā§‡āϟāĻž āĻĒ⧃āĻĨāĻ• āĻ•āϰāĻžāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖ āĻŦāϞāĻž āϝāĻžā§Ÿ, āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇āϰ āĻĄā§‡āϟāĻž/row āϝāĻĻāĻŋ āĻŦāĻžā§œāϤ⧇ āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āĻāϤ āĻĒāϰāĻŋāĻŽāĻžāĻŖ āĻĄā§‡āϟāĻž/row āĻŦā§‡ā§œā§‡ āϗ⧇āϞ āϝāĻžāϰ āĻĢāϞ⧇ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻŸā§‡āĻŦāĻŋāϞ⧇ āφāϰ āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰāĻž āϝāĻžā§Ÿ āύāĻž āϤāĻ–āύ āφāĻŽāϰāĻž āĻĄā§‡āϟāĻžāϗ⧁āϞ⧋āϕ⧇ āĻŽā§‚āϞ āĻŸā§‡āĻŦāĻŋāϞ āĻĨ⧇āϕ⧇ āĻĒ⧃āĻĨāĻ• āĻ•āϰ⧇ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ shard āĻŸā§‡āĻŦāĻŋāϞ⧇ distribute āĻ•āϰ⧇ āϰāĻžāĻ–āĻŋ āϏ⧇āϟāĻžāχ Database ShardingāĨ¤ āĻāĻ•āĻžāϧāĻŋāĻ• āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāχ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāύ āĻšāĻŦ⧇āĨ¤

Sharding

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āϏāĻžā§°ā§āĻĄāĻŋāĻ‚

Section 23: Database Replication

Database Replication āĻāĻ• āĻĒā§āϰāĻ•āĻžāϰ⧇āϰ Strategy, āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ Master Database āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻ•āĻŋāĻ‚āĻŦāĻž āĻāĻ•āĻžāϧāĻŋāĻ• Slave Database āĻĨāĻžāĻ•āĻŦ⧇āĨ¤ Master Database āĻāϰ āĻŽāĻ§ā§āϝ⧇ Insert, Delete āĻāĻŦāĻ‚ Update āĻāϰ āĻ•āĻžāϜ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ Slave Database āĻŽāĻ§ā§āϝ⧇ Master Database āĻāϰ āĻĄā§‡āϟāĻžāϗ⧁āϞ⧋āϰ Copy āĻĨāĻžāĻ•āĻŦ⧇ āĻāĻŦāĻ‚ āϤāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āĻļ⧁āϧ⧁ Read Operation āĻšāĻŦ⧇āĨ¤

Database Replication

Database Replication, SQL āĻāĻŦāĻ‚ NoSQL āĻĻ⧁āϟāĻŋ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ⧇ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āϰ⧇āĻĒā§āϞāĻŋāϕ⧇āĻļāύ

Section 24: Caching

Caching āĻāĻ•āϟāĻŋ āĻ•ā§ŒāĻļāϞ āϝāĻž āĻĻā§āĻŦāĻžāϰāĻž āϕ⧋āύ Expensive Response'āϕ⧇ āϕ⧋āύ⧋ āĻŽā§‡āĻŽā§‹āϰāĻŋāϤ⧇ āϰāĻžāĻ–āĻž āĻšā§Ÿ, āϝāĻžāϤ⧇ āĻŦāĻžāϰ āĻŦāĻžāϰ āφāϏāĻž āϏ⧇āχ āϰ⧇āĻ¸ā§āĻĒāĻ¨ā§āϏ⧇āϰ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āϕ⧇ āĻĻā§āϰ⧁āϤ āϰ⧇āϏāĻĒāĻ¨ā§āϏāϟāĻŋ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āĻŽā§‚āϞ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ (āϝ⧇āĻŽāύ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ) āĻšāĻŋāϟ āĻ•āϰāĻžāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻ•ā§āϝāĻžāĻļāĻŋāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āĻ•āϰāĻŦ⧇āĨ¤ āĻāϤ⧇ āĻ•āϰ⧇ āϝ⧇ āϏ⧁āĻŦāĻŋāϧāĻžāϟ⧁āϕ⧁ āĻšāĻŦ⧇,

  • Read API āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ Fast āĻšāĻŦ⧇
  • Latency Reduce āĻšāĻŦ⧇
  • Fault Tolarence āĻāϰ āĻā§āρāĻ•āĻŋ āĻ•āĻŽāĻŦ⧇

Caching

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻ•ā§āϝāĻžāĻļāĻŋāĻ‚

Section 25: Content Delivery Network

Content Delivery Network āĻ…āĻĨāĻŦāĻž CDN, āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āϏāĻžāĻ°ā§āĻ­āĻžāϰ āφāĻŽāĻžāĻĻ⧇āϰ āϭ⧌āĻ—ā§‹āϞāĻŋāĻ• āĻāϰ āφāϏ⧇āĻĒāĻžāĻļ⧇ āĻĨāĻžāϕ⧇, āϝāĻžāϤ⧇ āφāĻŽāϰāĻž āϖ⧁āĻŦ āĻĻā§āϰ⧁āϤ āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āϟ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āϟāϟāĻŋ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ JS, CSS, Images āĻ•āĻŋāĻ‚āĻŦāĻž VideosāĨ¤

cdn

āφāĻŽāĻžāĻĻ⧇āϰ CDN āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϝāĻĻāĻŋ India āϤ⧇ āĻĨāĻžāϕ⧇ āφāϰ āφāĻŽāϰāĻž Bangladesh āĻĨ⧇āϕ⧇ content request āĻ•āϰāĻŋ āϤāĻžāĻšāϞ⧇ āϖ⧁āĻŦ āϤāĻžā§œāĻžāϤāĻžā§œāĻŋ content āĻĒāĻžāĻŦāĨ¤ āĻ•āĻžāϰāĻŖ āϤāĻ–āύ Latency āĻ•āĻŽā§‡ āϝāĻžāĻŦ⧇āĨ¤ āφāϰ āφāĻŽāϰāĻž Bangladesh āĻĨ⧇āϕ⧇ England-āĻ āϝ⧇āĻ–āĻžāύ⧇ āĻŽā§‚āϞ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āφāϛ⧇, āϏ⧇āĻ–āĻžāύ⧇ āĻ•āύāĻŸā§‡āĻ¨ā§āϟ āĻāϰ āϜāĻ¨ā§āϝ request āĻ•āϰāϞ⧇ Latency āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻŦ⧃āĻĻā§āϧāĻŋ āĻĒāĻžāĻŦ⧇, āϝ⧇āĻšā§‡āϤ⧁ āĻĻ⧁āχ āĻĻ⧇āĻļ⧇āϰ āĻĻā§‚āϰāĻ¤ā§āĻŦ āĻŦ⧇āĻļāĻŋāĨ¤

āϝ⧇ āϝ⧇ āϞ⧋āϕ⧇āĻļāύ⧇ CDN āϏāĻžāĻ°ā§āĻ­āĻžāϰ āφāϛ⧇ āϏ⧇āχ āϞ⧋āϕ⧇āĻļāύāϗ⧁āϞ⧋āϕ⧇ Point of Presence āĻŦāĻž PoP āĻŦāϞ⧇āĨ¤ āϝ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ PoP āĻāϰ āĻ­āĻŋāϤāϰ⧇ āĻĨāĻžāϕ⧇ āϤāĻžāϕ⧇ Edge Server āĻŦāϞ⧇āĨ¤

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻ•āύāĻŸā§‡āĻ¨ā§āϟ āĻĄā§‡āϞāĻŋāĻ­āĻžāϰāĻŋ āύ⧇āϟāĻ“ā§ŸāĻžāĻ°ā§āĻ•

Section 26: Rate Limiter

Rate Limiter āĻāĻ•āϟāĻŋ āĻĒā§āϰāϏ⧇āϏ, āϝ⧇āĻ–āĻžāύ⧇ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āĻĨ⧇āϕ⧇ āφāϏāĻž āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϝāĻžāĻ“ā§ŸāĻžāϰ āĻĒā§‚āĻ°ā§āĻŦ⧇ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟāϟāĻŋ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏāĻŽā§Ÿā§‡āϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĒāϰāĻŋāĻŽāĻžāĻŖ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ Rate Limiter āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇ āĻĨāĻžāϕ⧇āĨ¤ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĒāϰāĻŋāĻŽāĻžāύ⧇āϰ āĻšā§‡ā§Ÿā§‡ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āĻŦ⧇āĻļāĻŋ āĻšā§Ÿā§‡ āϗ⧇āϞ⧇ Rate Limiter āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟāϗ⧁āϞ⧋āϕ⧇ block āĻ•āϰ⧇ āĻĢ⧇āϞ⧇, āϝāĻžāϰ āĻĢāϞ⧇ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟāϗ⧁āϞ⧋ āφāϰ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤

āĻāĻ–āĻžāύ⧇ āĻŽā§‚āϞ āĻĒā§Ÿā§‡āĻ¨ā§āϟ ⧍āϟāĻŋ, āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏāĻŽā§Ÿ āĻāĻŦāĻ‚ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĒāϰāĻŋāĻŽāĻžāĻŖ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟāĨ¤

rate limiter

āωāĻĒāϰ⧇āϰ āĻ›āĻŦāĻŋāϤ⧇ āĻĻ⧇āĻ–āĻž āϝāĻžāĻšā§āϛ⧇, āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āĻāĻŦāĻ‚ āϰ⧇āĻ¸ā§āĻĒāĻ¨ā§āϏ⧇āϰ āĻŽāĻ§ā§āϝ⧇ middleware āĻšāĻŋāϏ⧇āĻŦ⧇ rate limiter āφāϛ⧇āĨ¤

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āϰ⧇āχāϟ āϞāĻŋāĻŽāĻŋāϟāĻžāϰ

Section 27: CAP Theorem

āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ•āύāϏ⧇āĻĒā§āϟ āĻŦāĻž āĻĨāĻŋāĻ“āϰāĻŋ āϝāĻž āĻĻā§āĻŦāĻžāϰāĻž āĻŦ⧁āϜāĻž āϝāĻžā§Ÿ, āĻāĻ•āϟāĻŋ 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 āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻĒā§āϰāϏ⧇āϏ āĻšāĻŦ⧇āĨ¤

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻ•ā§āϝāĻžāĻĒ āĻĨāĻŋāĻ“āϰāĻžāĻŽ

Section 29: Polling, Web Socket and Server-Sent Events

Polling āĻŽāĻžāύ⧇ āĻšāĻšā§āϛ⧇ client regular interval āĻ server āϕ⧇ āĻŦāĻžāϰ āĻŦāĻžāϰ āĻĄā§‡āϟāĻžāϰ āϜāĻ¨ā§āϝ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āĻ•āϰāĻŦ⧇āĨ¤ āϝ⧇āĻŽāύ, āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āĻĒā§āϰāϤāĻŋ ā§Ģ āϏ⧇āϕ⧇āĻ¨ā§āĻĄ āĻĒāϰ āĻĒāϰ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϕ⧇ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āĻ•āϰāĻŦ⧇ āφāϰ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϤāĻžāϰ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻĻāĻŋāĻŦ⧇āĨ¤

polling

Polling āĻāϰ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻŦ⧜ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāĻšā§āϛ⧇ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ Bandwidth āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšāĻ“ā§ŸāĻžāĨ¤

Web Socket āĻŽāĻžāύ⧇ āĻšāĻšā§āϛ⧇ Socket āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻ•āĻžāύ⧇āĻ•āĻļāύ āϤ⧈āϰ⧀ āĻšāĻŦ⧇ āϝāĻž āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āĻŦāĻž āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϝāϤāĻ•ā§āώāύ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ disconnected āύāĻž āĻšāĻšā§āϛ⧇ āϤāϤāĻ•ā§āώāύ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻ•āĻžāύ⧇āĻ•āĻļāύ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āĻāĻ–āĻžāύ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϕ⧇ āĻŦāĻžāϰ āĻŦāĻžāϰ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āĻ•āϰāĻž āϞāĻžāĻ—āĻŦ⧇ āύāĻž, āϝ⧇āĻšā§‡āϤ⧁ āĻ•āĻžāύ⧇āĻ•āĻļāύ āφāϛ⧇ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāϰ āĻŽāĻ§ā§āϝ⧇ āϏ⧇āĻšā§‡āϤ⧁ āϕ⧋āύ⧋ āĻĒā§āϰāĻ•āĻžāϰ⧇āϰ event āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϏāĻ‚āϘāϟāĻŋāϤ āĻšāϞ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāϰ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟāϕ⧇ āĻĒāĻžāĻ āĻŋā§Ÿā§‡ āĻĻāĻŋāĻŦ⧇āĨ¤ Web Socket āĻŸā§‡āĻ•āύ⧋āϞāϜāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Chat Application āĻŦāĻžāύāĻžāύ⧋ āϝāĻžā§ŸāĨ¤

web_socket

Web Socket āĻ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āĻŸā§‡āϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻ•āĻžāύ⧇āĻ•āĻļāύ āϤ⧈āϰ⧀ āĻšā§Ÿ, āĻ…āĻ°ā§āĻĨāĻžā§Ž āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻ­āĻŋāϤāϰ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āĻŸā§‡āϰ āĻ•āĻŋāϛ⧁ āχāύāĻĢāϰāĻŽā§‡āĻļāύ āĻĨāĻžāĻ•āϤ⧇ āĻšāĻŦ⧇ āϝāĻžāϤ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟāϕ⧇ āĻŸā§āĻ°ā§āϝāĻžāĻ• āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāϜāĻ¨ā§āϝ āĻāϟāĻŋāϕ⧇ Stateful Architecture āĻŦāϞāĻž āĻšā§ŸāĨ¤

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻĒā§‹āϞāĻŋāĻ‚, āĻ“ā§Ÿā§‡āĻŦ āϏāϕ⧇āϟ āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏ⧇āĻ¨ā§āϟ āχāϭ⧇āĻ¨ā§āϟāϏ

Section 31: Message Queue

āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĒā§āϰāϏ⧇āϏ āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ• āĻŦāĻž āĻāĻ•āĻžāϧāĻŋāĻ• Producer āĻĨāĻžāĻ•āĻŦ⧇, āϝāĻžāĻĻ⧇āϰ āĻ•āĻžāϜ āĻšāĻšā§āϛ⧇ Message(āĻāĻ–āĻžāύ⧇ message āĻŽāĻžāύ⧇ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ) Queue āĻāϰ āĻŽāĻ§ā§āϝ⧇ send āĻ•āϰāĻž āĻāĻŦāĻ‚ queue āϏ⧇āχ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟāϗ⧁āϞ⧋āϕ⧇ āĻĒā§āϰāϏ⧇āϏ āĻ•āϰ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ consumer āĻāϰ āĻ•āĻžāϛ⧇ āĻĒāĻžāĻ āĻŋā§Ÿā§‡ āĻĻā§‡ā§ŸāĨ¤

Message Queue

āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ 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

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻŽā§‡āϏ⧇āϜ āĻ•āĻŋāω

Section 33: Single Sign-On

Single Sign-On āĻ•āĻŋāĻ‚āĻŦāĻž SSO āĻšāϞ āĻāĻ•āϟāĻŋ Authentication MechanismāĨ¤ āϝāĻž user āϕ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻĒā§āϞāĻžāϟāĻĢāĻ°ā§āĻŽ (āϗ⧁āĻ—āϞ, āĻĢ⧇āχāϏāĻŦ⧁āĻ•, āϟ⧁āχāϟāĻžāϰ) āĻĻāĻŋā§Ÿā§‡ Authenticate āĻ•āϰ⧇ āĻĻā§‡ā§Ÿ, āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ credential āĻŽāĻžāĻ§ā§āϝāĻŽā§‡āĨ¤

sso

(āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āϚāϞāĻŽāĻžāύ)

Section 34: Elasticsearch

āĻāϟāĻŋ āĻāĻ•āϟāĻŋ NoSQL āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻĄā§‡āϟāĻžāĻŦ⧇āϏāĨ¤ āĻŽā§‚āϞāϤ āĻāϟāĻŋāϕ⧇ Distributed Search āĻāĻŦāĻ‚ Aggregation Engine āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤ Elasticsearch āĻāϰ āĻ­āĻŋāϤāϰ structured āĻāĻŦāĻ‚ unstructured data āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰ⧇ āϰāĻžāĻ–āĻž āϝāĻžā§ŸāĨ¤

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āχāϞāĻžāĻ¸ā§āϟāĻŋāĻ•āϏāĻžāĻ°ā§āϚ

Section 35: Bloom Filter

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 āĻŦāϞāĻž āĻšā§ŸāĨ¤

🔗 āφāϰāĻ“ āĻĒ⧜⧁āύ: āĻŦā§āϞ⧁āĻŽ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ

Section 38: How OAuth2 works

OAuth2 āĻšāϞ āĻāĻ• āĻĒā§āϰāĻ•āĻžāϰ⧇āϰ Authorization Grant TechniqueāĨ¤ āĻāϟāĻŋ Google, Facebook āĻāϰ āĻŽāϤ āĻ“ā§Ÿā§‡āĻŦāϏāĻžāχāϟ āĻĨ⧇āϕ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ information āφāύāϤ⧇ āĻĒāĻžāϰ⧇ āϕ⧋āύ⧋ āĻĒā§āϰāĻ•āĻžāϰ⧇āϰ password āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ sensitive information āĻ›āĻžā§œāĻžāĨ¤ āĻāχ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ information āĻ āĻāĻ•āϟāĻŋ Access Token āĻĨāĻžāϕ⧇ āϝāĻž āĻĻā§āĻŦāĻžāϰāĻž āφāĻŽāϰāĻž āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϰāĻŋāϏ⧋āĻ°ā§āϏ(āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āϕ⧋āύ⧋ āĻ“ā§Ÿā§‡āĻŦāϏāĻžāχāϟ āĻ Login) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹āĨ¤

āĻāϟāĻŋ āϝ⧇āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇,

āϧāϰ⧁āύ āφāĻĒāύāĻŋ āϕ⧋āύ⧋ āĻ“ā§Ÿā§‡āĻŦāϏāĻžāχāĻŸā§‡ āϞāĻ—āχāύ āĻ•āϰāϛ⧇āύāĨ¤ āϏ⧇āϜāĻ¨ā§āϝ āφāĻĒāύāĻŋ Continue with Google āĻŦāĻžāϟāύ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāϞ⧇āύ,

  • āĻĒā§āϰāĻĨāĻŽā§‡ āĻ“ā§Ÿā§‡āĻŦāϏāĻžāχāϟ (āĻŽāĻžāύ⧇ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ) Google-āĻāϰ Authorization Server-āĻ āĻāĻ•āϟāĻŋ Authorization Request āĻĒāĻžāĻ āĻžā§ŸāĨ¤

  • Google āχāωāϜāĻžāϰāϕ⧇ āϤāĻžāϰ āϞāĻ—āχāύ āĻĒ⧇āĻœā§‡ āϰāĻŋāĻĄāĻžāχāϰ⧇āĻ•ā§āϟ āĻ•āϰ⧇, āϝ⧇āĻ–āĻžāύ⧇ āϏ⧇ Email āĻ“ Password Google-āĻāϰ āĻĒ⧇āχāĻœā§‡ āχāύāĻĒ⧁āϟ āĻĻā§‡ā§ŸāĨ¤

  • āχāωāϜāĻžāϰ āϝāĻĻāĻŋ āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ āϞāĻ—āχāύ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻĒāĻžāϰāĻŽāĻŋāĻļāύ āĻĻā§‡ā§Ÿ, āϤāĻ–āύ Google āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟāϕ⧇ āĻāĻ•āϟāĻŋ Authorization Code āĻĒāĻžāĻ āĻžā§ŸāĨ¤

  • āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāχ Authorization Code āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Google-āĻāϰ Authorization Server-āĻ āĻāĻ•āϟāĻŋ Access Token āĻāϰ āϜāĻ¨ā§āϝ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āĻĒāĻžāĻ āĻžā§ŸāĨ¤

  • Google āĻāĻ•āϟāĻŋ Access Token (āĻāĻŦāĻ‚ āϏāĻŽā§āĻ­āĻŦ āĻšāϞ⧇ ID Token) āĻĒāĻžāĻ āĻžā§Ÿ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϕ⧇āĨ¤

  • āĻāϰāĻĒāϰ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āĻāχ Access Token āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Google-āĻāϰ Resource Server āĻĨ⧇āϕ⧇ āχāωāϜāĻžāϰ⧇āϰ āϤāĻĨā§āϝ (āϝ⧇āĻŽāύ āύāĻžāĻŽ, āχāĻŽā§‡āχāϞ) āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

oauth2

Section 40: High Availability best practices by Netflix

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

Section 41: Real World Problems

āĻāĻ•āϜāύ āĻ­āĻžāϞ⧋ system designer āĻšāϤ⧇ āĻšāϞ⧇, āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ real-world āϏāĻŽāĻ¸ā§āϝāĻžāϗ⧁āϞ⧋āϰ requirements āĻāĻŦāĻ‚ planning āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻŦ⧁āϜāϤ⧇ āĻšāĻŦ⧇āĨ¤ āφāĻŽāĻŋ āĻāĻ–āĻžāύ⧇ āĻ•āĻŋāϛ⧁ āϏāĻŽāĻ¸ā§āϝāĻž āĻāĻŦāĻ‚ āϏ⧇āχ āϏāĻŽāĻ¸ā§āϝāĻžāϗ⧁āϞ⧋āϰ āϏāĻŽāĻžāϧāĻžāύ⧇āϰ āϧāĻžāϰāĻž āφāĻŽāĻŋ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻ›āĻŋāĨ¤

Section 42: Resources

About

System Design Tutorial in Bangla

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published