Gatsby
ΠΠΠ§ΠΠ«Π
Gatsby
ΠΠΠ§ΠΠ«Π
- Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ
- 10 ΠΠΊΡ 2018
- Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
- 44,440
- ΠΠ°ΠΉΠΊΠΈ
- 204,369
ΠΠ²ΡΠΎΡ: Balun.Courses
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅: System Design (2023)

ΠΠ½Π°ΠΊΠΎΠΌΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ?
Π£ΡΠΎΠΊ 1. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π’Π΅ΡΠΌΠΈΠ½Ρ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠΎΠ½ΡΡ: Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΠ΅ΠΌ API Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π£ΡΠΎΠΊ 2. Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΠΎΠ½ΡΡ: Π½Π° ΡΡΠΎΠΊΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΠ΅ΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Π£ΡΠΎΠΊ 3. Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΠΎΠ½ΡΡ: Π½Π° ΡΡΠΎΠΊΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Π²ΡΠ±Π΅ΡΠ΅ΠΌ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π£ΡΠΎΠΊ 4. ΠΠ°ΡΡΠ΅ΡΠ½Ρ ΠΈ ΠΏΡΠΈΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΠ½ΡΡ: Π²ΠΌΠ΅ΡΡΠ΅ Π½Π°ΠΉΠ΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΡΡΡ ΡΡΠΈΠΌ ΠΏΠ°ΡΡΠ΅ΡΠ½Π°ΠΌ ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π½Π°ΡΡΠΎΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ².
Π£ΡΠΎΠΊ 5. ΠΠΈΠ·Π°ΠΉΠ½ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ
Π£ΡΠΎΠΊ 6. ΠΠΈΠ·Π°ΠΉΠ½ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ#2
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅:
Π‘ΠΊΠ°ΡΠ°ΡΡ:
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅: System Design (2023)

ΠΠ½Π°ΠΊΠΎΠΌΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ?
- ΠΠ° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ middle+ ΠΏΡΠΎΡΡΡ ΠΏΡΠΎΠΉΡΠΈ system design ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ, Π° Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°Ρ
- ΠΠ° ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠ°ΡΡΠΈΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π° Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ Π·Π½Π°Π½ΠΈΠΉ Π² ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΠΌΠΎΡΡ
- ΠΡΡΡ Π±Π°Π·Π° ΠΏΠΎ system design, Π½ΠΎ Π·Π°ΠΏΠ°Π΄Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠ΅ΠΌΡ ΠΈ Π΄Π΅ΡΠ°Π»ΠΈ. ΠΠ΅ ΠΌΠΎΠ³Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ / Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π΄Π΅Π»Π°Ρ ΠΈΠ»ΠΈ Π½Π΅Ρ
- ΠΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΏΠΎ ΡΠΈΠΏΡ Β«Π’Π΅Π»Π΅Π³ΡΠ°ΠΌΒ», Β«Π―Π½Π΄Π΅ΠΊΡ.Π’Π°ΠΊΡΠΈΒ», Β«OzonΒ»
- ΠΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΡ Π² ΡΠ΅ΡΠΈ
- ΠΠ΅ ΠΌΠΎΠ³Ρ ΠΏΡΠΎΡΠ²ΠΈΡΡ ΡΠ΅Π±Ρ Π½Π° ΡΠ°Π±ΠΎΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ΅Ρ Π·Π½Π°Π½ΠΈΠΉ Π² ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
- ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡΡΡ ΠΊ ΡΡΡΠ΄ΠΎΡΡΡΡΠΎΠΉΡΡΠ²Ρ Π² ΡΠΎΠΏΠΎΠ²ΡΡ IT-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΡ middle+ - ΠΏΠΎΠΉΠΌΠ΅ΡΡ, ΠΈΠ· ΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΠΈΡ system design ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ ΠΈ Π½Π°ΡΡΠΈΡΡΡΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ Π΅Π³ΠΎ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
- Π£Π·Π½Π°Π΅ΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΡΠ΅ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
- ΠΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² ΠΈ ΠΏΡΠΈΠ΅ΠΌΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
- Π£Π·Π½Π°Π΅ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅
- ΠΠ°ΡΡΠΈΡΡΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΡΠΈΡΠ°ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ, ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ API, Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠ΅Π»ΠΎΠΌ
- ΠΠΎΠ²ΡΡΠΈΡΡ ΡΡΠΎΠ²Π΅Π½Ρ ΠΠ ΠΈ ΡΠ²ΠΎΡ ΡΠ΅Π½Π½ΠΎΡΡΡ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠ°ΠΊ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°
Π£ΡΠΎΠΊ 1. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π’Π΅ΡΠΌΠΈΠ½Ρ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
- Π€Π°ΠΉΠ»-ΡΠ΅ΡΠ²Π΅Ρ / ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅Ρ / P2P
- ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ / ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ / ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ / Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌ
- ΠΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ / Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅)
- ΠΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΡΠ΅ ΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- Stateless ΠΈ statefull ΡΠ΅ΡΠ²ΠΈΡΡ
- Latency ΠΈ Throughput
- SLA / SLO / SLI
- Data / compute intensive ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- ΠΠ°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ (ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ), (DNS ΠΈ geoDNS Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ°), (l4 / l7), (round robin / weighted round robin / least connections / least response time / least bandwidth / sticky sessions)
- ΠΡΠΎΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (forward / reverse)
- ΠΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (Π²Π½ΡΡΡΠ΅Π½Π΅Π΅ / Π²Π½Π΅ΡΠ½Π΅Π΅), (lazy caching / write-through / read-through / write-around), (ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΠ΅Π»Π°Π΄ΠΈ, LRU, SLRU, MRU, LFU, LIFO, FIFO, 2Q, MQ)
- API (SOAP, REST, gRPC, GraphQL), (under / over fetching)
- Observability (ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠ΅ΠΉΡΠΈΠ½Π³, Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π°Π½Π°Π»ΠΈΠ· ΡΠ±ΠΎΠ΅Π²)
ΠΠΎΠ½ΡΡ: Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΠ΅ΠΌ API Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π£ΡΠΎΠΊ 2. Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
- OLAP / OLTP
- Data retention
- ΠΠΎΠΈΡΠΊΠΎΠ²ΡΠ΅ Π΄Π²ΠΈΠΆΠΊΠΈ
- Π Π΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠ΅ / Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ / key-value / Π³ΡΠ°ΡΠΎΠ²ΡΠ΅ / Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΄ΠΎΠ² / ΠΊΠΎΠ»ΠΎΠ½ΠΎΡΠ½ΡΠ΅ / Blob storage Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
- Persistent ΠΈ in-memory Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
- Embedded ΠΈ single file Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
- ΠΠ½Π΄Π΅ΠΊΡΡ (BTree / Hash / Bitmap / Spatial / Inverted), (ΠΊΠ»Π°ΡΡΠ΅ΡΠ½ΡΠ΅ / Π½Π΅ΠΊΠ»Π°ΡΡΠ΅ΡΠ½ΡΠ΅), (ΠΏΠΎΠΊΡΡΠ²Π°ΡΡΠΈΠ΅)
- ACID ΠΈ BASE
- Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ (WAL), (MVCC, 2PL), (Deferrable)
- Constraints (NOT NULL, UNIQUE, FOREIGN KEY, CHECK, DEFAULT)
- Π₯ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΡΡΠΈΠ³Π³Π΅ΡΡ ΠΈ materialized view
- ΠΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ (READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE)
- ΠΡΠΎΠΊΠ΅ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ (Kafka, RabitMQ)
- CDN
ΠΠΎΠ½ΡΡ: Π½Π° ΡΡΠΎΠΊΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΠ΅ΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Π£ΡΠΎΠΊ 3. Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
- ΠΡΠΊΠ°ΠΏΡ
- CAP ΡΠ΅ΠΎΡΠ΅ΠΌΠ°
- Strong / Eventual Consistency
- Π Π΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ (ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ / Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ / ΠΏΠΎΠ»Ρ-ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ), (Ρ ΠΎΠ΄Π½ΠΈΠΌ Π²Π΅Π΄ΡΡΠΈΠΌ ΡΠ·Π»ΠΎΠΌ / Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π²Π΅Π΄ΡΡΠΈΠΌΠΈ ΡΠ·Π»Π°ΠΌΠΈ / Π±Π΅Π· Π²Π΅Π΄ΡΡΠΈΡ ΡΠ·Π»ΠΎΠ²), (statement based / row based / mixed), (Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ / ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°Ρ), (pull / push), (failover), (hot standby)
- Replication lag (ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ / ΠΌΠΎΠ½ΠΎΡΠΎΠ½Π½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ / ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΠ½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅)
- Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΉ
- ΠΠ΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- Π¨Π°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (range based / key based / directory based), (client / proxy / coordinator routing)
- ΠΠ΅ΡΠ΅Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° (virtual buckets)
- Resharding (consistent / randezvous hashing)
- ΠΠ½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kafka
- CDC (Debezium
ΠΠΎΠ½ΡΡ: Π½Π° ΡΡΠΎΠΊΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Π²ΡΠ±Π΅ΡΠ΅ΠΌ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π£ΡΠΎΠΊ 4. ΠΠ°ΡΡΠ΅ΡΠ½Ρ ΠΈ ΠΏΡΠΈΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
- CQRS
- Pub / sub
- Low-latency ΠΈ High-troughput ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- Realtime ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ²
- Map Reduce
- Service discovery
- Push ΠΈ pull ΠΌΠΎΠ΄Π΅Π»Ρ
- Π’ΠΎΠ»ΡΡΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ
- Π’Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡΡΠ°
- Π’ΡΠ΅Ρ Π·Π²Π΅Π½Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
- ΠΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ
- Polling / long polling / streaming
- Retries (ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎΡΡΡ / backoff)
- Circuit breaker
- Gracefull degradation (fallback)
- Rolling, Blue/Green ΠΈ Canary ΡΠ΅Π»ΠΈΠ·Ρ
- CΠΎΠ±ΡΡΠΈΠΉΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° (Event Notification / State Transfer / Event Collaboration)
- ΠΠΎΠ½ΡΠ΅Π½ΡΡΡ (ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° / Π²ΡΠ±ΠΎΡ Π»ΠΈΠ΄Π΅ΡΠ° / ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ)
ΠΠΎΠ½ΡΡ: Π²ΠΌΠ΅ΡΡΠ΅ Π½Π°ΠΉΠ΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΡΡΡ ΡΡΠΈΠΌ ΠΏΠ°ΡΡΠ΅ΡΠ½Π°ΠΌ ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π½Π°ΡΡΠΎΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ².
Π£ΡΠΎΠΊ 5. ΠΠΈΠ·Π°ΠΉΠ½ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ
- ΠΠΈΠ·Π°ΠΉΠ½ Telegram
- ΠΠΈΠ·Π°ΠΉΠ½ Π»Π΅Π½ΡΡ Π΄ΡΡΠ·Π΅ΠΉ ΠΠΠΎΠ½ΡΠ°ΠΊΡΠ΅
- ΠΠΈΠ·Π°ΠΉΠ½ Π―Π½Π΄Π΅ΠΊΡ Go
Π£ΡΠΎΠΊ 6. ΠΠΈΠ·Π°ΠΉΠ½ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ#2
- ΠΠΈΠ·Π°ΠΉΠ½ LeetCode
- ΠΠΈΠ·Π°ΠΉΠ½ Booking.com
- ΠΠΈΠ·Π°ΠΉΠ½ Google Drive
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅:
Π‘ΠΊΡΡΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π΄Π»Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ!
Π‘ΠΊΠ°ΡΠ°ΡΡ:
ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΠΉΡΠΈ ΠΈΠ»ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ.