ΠΡΠΈΠ²Π΅Ρ, Π₯Π°Π±Ρ!
Π ΡΠ²Π΅ΡΠ΅ ΡΠ΅ΠΊΡΡΠΈΡ
ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈΠ·-Π·Π° ΠΊΠΎΡΠΎΠ½Π°Π²ΠΈΡΡΡΠ° ΡΡΠ΄ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΡΠ°Π» ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΊΡΠ°ΡΠΊΠΎ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π±ΡΡΡΡΡΠΉ ΠΈ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΡ Π΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ ΠΎΡΠΎΠ±ΡΠ°Π» ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ΅ΠΉΡΠ°Ρ Π»Π΅Π³ΠΊΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Ρ Π²Π°Ρ ΠΈΠ»ΠΈ Π΅ΡΡΡ ΡΠΆΠ΅ Π³ΠΎΡΠΎΠ²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈΠ»ΠΈ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅ΡΠΈΡΡ Π·Π°Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
ΠΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ Π²ΡΠ΅ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΏΡΠ½ΠΊΡ. Π£ΡΠ»ΠΎΠ²Π½ΠΎ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π΄Π²Π΅ ΡΡ
Π΅ΠΌΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ β Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ Π²ΠΎΠ·ΡΠΌΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΎ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Π°Π½Π°Π»ΠΎΠ³ OwnCloud, OneDrive ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΡ Π΅ΠΌΡ Π½ΠΈΠΆΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½Π° Π»ΠΈΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ΅Π΄Ρ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ. Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Ρ ΠΏΠ»Π°Π½ΡΠ΅ΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΠ» ΡΠ°ΠΉΠ», Π° ΠΏΠΎΡΠΎΠΌ Ρ ΠΎΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°?
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°ΠΌΠΈ: Π² Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ Π½Π°ΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΡ ΡΠ·Π»ΠΎΠ², Π° Π² Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠΌ β Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ·Π»Ρ, ΡΡΠΎΠ±Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ.
CQRS
ΠΠ΅ΡΠ²ΡΠΉ Π±ΠΎΠ½ΡΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π·ΡΡΠ²Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (Π² ΡΠΈΡΠΎΠΊΠΎΠΌ ΡΠΌΡΡΠ»Π° ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°) Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ:
- ΠΠ»ΠΈΠ΅Π½Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΠ» Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
- Π‘Π΅ΡΠ²Π΅Ρ Π·Π°ΠΏΡΡΡΠΈΠ» Π΄ΠΎΠ»Π³ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ.
- Π‘Π΅ΡΠ²Π΅Ρ ΠΎΡΠ²Π΅ΡΠΈΠ» ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Π² ΠΏΡΠ½ΠΊΡΠ΅ 2 ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΠΎΠ±ΡΡΠ² ΡΠ²ΡΠ·ΠΈ (ΠΈΠ»ΠΈ ΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»Π°ΡΡ, ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ» Π½Π° Π΄ΡΡΠ³ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΎΠ±ΠΎΡΠ²Π°Π² ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅). Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΠ²Π΅ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠ²Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π»ΠΎΡΡ. ΠΡΠΈΠΌΠ΅Π½ΡΡ CQRS, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΎΠΉ:
- ΠΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π»ΡΡ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
- ΠΠ»ΠΈΠ΅Π½Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΠ» Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
- Π‘Π΅ΡΠ²Π΅Ρ ΠΎΡΠ²Π΅ΡΠΈΠ» Β«Π·Π°ΠΏΡΠΎΡ ΠΏΡΠΈΠ½ΡΡΒ».
- Π‘Π΅ΡΠ²Π΅Ρ ΠΎΡΠ²Π΅ΡΠΈΠ» ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ΅ΡΠ΅Π· ΠΊΠ°Π½Π°Π» ΠΈΠ· ΠΏΡΠ½ΠΊΡΠ° Β«1Β».
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, ΡΡ Π΅ΠΌΠ° ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½Π°Ρ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ request-response Π·Π΄Π΅ΡΡ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, ΠΎΠ±ΡΡΠ² ΡΠ²ΡΠ·ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ° Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π»Π΅ΡΠΎΠ½Π° ΠΈ Ρ ΠΏΠ»Π°Π½ΡΠ΅ΡΠ°), ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΡΠ²Π΅Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ» Π½Π° ΠΎΠ±Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Π§ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ (Π½Π΅ Π½Π° 100%) ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ²Π»ΠΈΡΠ» ΡΠ°ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π±ΠΎΠ½ΡΡΡ Π² ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠΈΠ»Π΅ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ RX ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈ). Π Π²ΠΎΡ ΡΡΠΎ ΡΠΆΠ΅ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΉ ΠΏΠ»ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ ΡΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΌ, ΠΏΡΠΈΡΠ΅ΠΌ Π΅ΡΠ΅ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°. ΠΠ»Ρ ΠΆΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΡΠ΅ΡΡΡΡΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ.
ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΠΌ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΡΠΎ Π±ΠΎΠ½ΡΡΠΎΠΌ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΡΠ²Π΅Ρ, Π° ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΡΠ²Π΅ΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΌ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΠ΅ΡΠ²ΠΈΡ, Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π²Π½ΡΡΡΠΈ Π²ΡΡ ΡΠ°Π²Π½ΠΎ ΡΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ.
Event Sourcing
ΠΠ°ΠΊ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΎΠ±ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΎΠ±ΡΠ΅ΠΉ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ. ΠΠ»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ (Π½Π° ΡΠ΅Ρ ΠΆΠ΅ ΠΌΡΡΡΠ΅ΠΊΡΠ°Ρ ), Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ Π½ΠΈΠΊΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠΎΡ ΠΊΠΎΠ΄. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠ°ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π° ΡΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ±ΡΠ΅ΡΡΡ Π²ΡΡ ΠΏΡΠ΅Π»Π΅ΡΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ β Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π±ΡΠ΄ΡΡ ΠΆΠ΄Π°ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ.
ΠΡΡΡΠ΄Π° ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²Π°ΠΆΠ½ΡΠΉ ΡΠ°ΠΊΡ β Π±ΡΡΡΡΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅Π»ΡΠ·Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΎΠ²Π°ΡΡ, ΠΈΠ±ΠΎ ΡΠΎΠ³Π΄Π° ΠΌΡ ΡΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π·Π°ΡΠ°ΡΡΡΡ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². Π Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ Ρ
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π±Π°Π· Π΄Π°Π½Π½ΡΡ
Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ
ΠΠ΄Π½Π°ΠΊΠΎ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅. ΠΡΠ»ΠΈ ΡΠ°ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° Ρ
ΠΠ°ΠΆΠ½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°:
- ΠΠ°ΠΆΠ΄ΡΠΉ Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΎΠ΄Π½Ρ ΠΎΡΠ΅ΡΠ΅Π΄Ρ.
- Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ° ΡΠ΅ΡΠ²ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π·Π°Π΄Π°ΡΠΈ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.
- Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ Π΅ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ Π΄Π΅Π΄ΡΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ).
- ΠΡΠ΅ΡΠ΅Π΄Ρ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΡΡ Π΅ΠΌΠ΅ "append only". ΠΠ· Π½Π΅Ρ Π½Π΅Π»ΡΠ·Ρ ΡΠ΄Π°Π»ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π²Π»ΡΡΡ ΠΈΡ .
- ΠΡΠ΅ΡΠ΅Π΄Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΡΡ Π΅ΠΌΠ΅ FIFO (ΠΈΠ·Π²ΠΈΠ½ΠΈΡΠ΅ Π·Π° ΡΠ°Π²ΡΠΎΠ»ΠΎΠ³ΠΈΡ). ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΡΠ°ΠΏΠΎΠ² ΠΏΠ΅ΡΠ΅ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΡΠ°Π·Π½ΡΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.
ΠΠ°ΠΏΠΎΠΌΠ½Ρ, ΡΡΠΎ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ ΡΠ»ΡΡΠ°ΠΉ ΠΎΠ½Π»Π°ΠΉΠ½ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ, ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ, ΡΠ°ΠΊ:
ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎ ΡΠ΅ΡΠ²ΠΈΡΡ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ. ΠΠ°ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅. ΠΠ°ΠΆΠ½ΠΎ Π΄ΡΡΠ³ΠΎΠ΅: ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΈ Π²Π΅ΡΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π Π΄Π»Ρ Π΄Π²ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΡ Π΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ (ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ ΡΠ°Π·Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Ρ ΡΠ°Π·Π½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ):
ΠΠΎΠ½ΡΡΡ ΠΎΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ:
- Π‘Π΅ΡΠ²ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ. ΠΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ. ΠΡΠ»ΠΈ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎ Π½Π°Π΄ΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π½Π° Π±ΠΎΠ»ΡΡΠ΅ΠΌ ΡΠΈΡΠ»Π΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ².
- ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½Π°ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΎΠ±ΠΎΡΠΎΡ, Π½Π°ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΡΠ²Π΅ΡΠΈΡΡ Β«ΠΎΠΊΒ», Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ. ΠΠ°ΠΎΠ΄Π½ΠΎ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠΈΠΊΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π±ΡΡΡΡΠΎ, Π° ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡ ΠΎΠ΄Π° ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΈΠΊΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΆΠ΄Π°ΡΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ.
- ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠ΅ΡΠ²ΠΈΡ Π΄Π΅Π΄ΡΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. ΠΡΠ»ΠΈ ΠΎΠ½ Π΄ΠΎΠ»Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² 1% ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠΈΡ (ΡΠΌ. Π²ΡΡΠ΅), ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΠ»ΡΡΠΎΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΡ Π½Π°Ρ ΡΠΆΠ΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠΎΠΏΡΠΎΡΠ΅Π½ΡΠ½Π°Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠ°Π·Ρ ΠΆΠ΅ Π²ΠΈΠ΄Π½Ρ ΠΈ ΠΌΠΈΠ½ΡΡΡ:
- Π£ Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠΏΠ°Π»Π° ΡΡΡΠΎΠ³Π°Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ ΠΊ ΡΠ°Π·Π½ΡΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ, ΡΠΎ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°Π·Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΡΠΏΠ΅ΡΡ ΠΏΡΠΈΠ½ΡΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ). ΠΠ°ΠΊ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π’ΠΎ Π΅ΡΡΡ Π½Π΅Π»ΡΠ·Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π½Π΅ Π±ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌΠΈ (Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° Π΄Π²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ β ΡΡΠΎ ΡΡΠΎΠΏΠΈΡ).
- ΠΠΈΠΊΠ°ΠΊΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ Π½Π΅Π»ΡΠ·Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΊΠ°ΡΠΈΡΡ (ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ
). ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ β
compensation event , ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅. ΠΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ· ΡΡ ΠΎΠΆΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ: Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ ΠΈΡΡΠΎΡΠΈΠΈ (ΡΡΠΎ ΠΏΠ»ΠΎΡ ΠΎ Π² ΡΡΠ΄Π΅ ΡΠ»ΡΡΠ°Π΅Π²) Π² git Π½Π΅Π»ΡΠ·Ρ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉrollback commit , ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΡΡΠΈ ΠΏΡΠΎΡΡΠΎ Π²Π΅ΡΠ½Π΅Ρ ΡΡΠ°ΡΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡΡ ΠΈ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΈ rollback. - Π‘Ρ Π΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ ΠΎΡ ΡΠ΅Π»ΠΈΠ·Π° ΠΊ ΡΠ΅Π»ΠΈΠ·Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠ°ΡΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ (ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΎΠ±ΡΡΠΈΡ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΌΠ΅Π½ΡΡΡ).
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, Event Sourcing ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Ρ CQRS. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΌΠΈ ΠΎΡΠ΅ΡΠ΅Π΄ΡΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π±Π΅Π· ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΡΠΆΠ΅ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π²Π΅Π΄Ρ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠΎΡΠΊΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π½ΠΈΠ²Π΅Π»ΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΡΠ΅ΠΊΡ ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ. ΠΡΠΈΠΌΠ΅Π½ΡΡ ΠΎΠ±Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΡΡΠ°Π·Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΡΠ°ΠΉΠ»Π° Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, Π² ΠΎΡΠ²Π΅ΡΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Β«ΠΎΠΊΒ», ΡΡΠΎ Π·Π½Π°ΡΠΈΡ Π»ΠΈΡΡ, ΡΡΠΎ Β«ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° ΡΠΎΡ ΡΠ°Π½Π΅Π½Π°Β». Π€ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, ΡΡΠΎ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΡΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ²ΠΈΡ Π΄Π΅Π΄ΡΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ). ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΏΡΠΈΠ΄Π΅Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π² ΡΡΠΈΠ»Π΅ Β«ΡΠ°ΠΉΠ» Π₯ ΡΠΎΡ ΡΠ°Π½Π΅Π½Β».
ΠΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
- Π§ΠΈΡΠ»ΠΎ ΡΡΠ°ΡΡΡΠΎΠ² ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ: Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Β«ΡΠ°ΠΉΠ» ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Β» ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄Π²Π°: Β«ΡΠ°ΠΉΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅Β» ΠΈ Β«ΡΠ°ΠΉΠ» ΡΠΎΡ ΡΠ°Π½Π΅Π½ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅Β». ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π½Π°ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΉΠ» (Ρ ΠΏΠΎΠΏΡΠ°Π²ΠΊΠΎΠΉ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°Π·Π½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ).
- ΠΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠ΄ΡΠΌΡΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡΠ°ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΉΠ»Π°. ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΠΈΠ· ΡΡΠΎΠ³ΠΎ: Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ request-response, ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠ΅Π½ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΉΠ»Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠ°ΡΡΡ ΡΡΠΎΠΉ ΡΠ°ΠΌΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ΅Π½. ΠΡΠΈΡΠ΅ΠΌ ΡΡΠΎΡ ΠΏΡΠ½ΠΊΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠΎ ΡΡΡΠΈ, ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ. ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅: ΠΌΡ ΡΠ΅ΠΏΠ΅ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ»Π΅ΡΠ°Π½ΡΠ½Ρ ΠΊ ΠΎΡΠΊΠ°Π·Π°ΠΌ.
Sharding
ΠΠ°ΠΊ ΡΠΆΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ event sourcing ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΡΡΠΎΠ³Π°Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ. Π Π·Π½Π°ΡΠΈΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΡΠΈΠ±Π»ΠΈΠΆΠ°ΡΡΡ ΠΊ Π½Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠ΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ:
- Π Π°Π·Π΄Π΅Π»ΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΏΠΎ ΡΠΈΠΏΠ°ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ/Π²ΠΈΠ΄Π΅ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ.
- Π Π°Π·Π΄Π΅Π»ΡΡΡ Π°ΠΊΠΊΠ°ΡΠ½ΡΡ ΠΏΠΎ ΡΡΡΠ°Π½Π°ΠΌ. ΠΠ·-Π·Π° ΠΌΠ½ΠΎΠ³ΠΈΡ Π·Π°ΠΊΠΎΠ½ΠΎΠ² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠ° ΡΡ Π΅ΠΌΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π΄Π°Π΅Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π² Π΄ΡΡΠ³ΠΎΠ΅, ΡΠΎ Π·Π΄Π΅ΡΡ ΡΠΆΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Π½Π΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠ΄Π΅Π»Π°ΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ, Π° ΠΏΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Ρ. Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Β«Π½Π° Π»Π΅ΡΡΒ» Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠ±ΡΡΠΈΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ, ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ»Π΅ΠΏΠΊΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠΈΠ³ΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
- Π Event Source ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (Π² ΠΈΠ΄Π΅Π°Π»Π΅ β Π½Π΅ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡΠΈΠΉΡΡ). Π Π·Π½Π°ΡΠΈΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ»Π΅ β id ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
- ΠΡΠ±Π»ΠΈΡΡΠ΅ΠΌ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΡΠΎΠ±Ρ Π²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ (ΠΏΠ΅ΡΠ²ΠΎΠ΅ β ΡΡΠΎ ΡΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ Ρ ΡΠ°Π½ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅, Π° Π²ΡΠΎΡΠΎΠ΅ β Π½ΠΎΠ²ΠΎΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠΊΠ° ΠΏΡΡΡΠΎΠ΅). ΠΡΠΎΡΠ°Ρ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ.
- ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π²ΡΠΎΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ (ΡΠΎ Π΅ΡΡΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ).
- ΠΠΎΠ³Π΄Π° Π½ΠΎΠ²Π°Ρ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΡΡΠ° (Ρ.Π΅. ΡΡΠ΅Π΄Π½ΡΡ ΡΠ°Π·Π½ΠΈΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈ Π΅Π³ΠΎ ΠΆΠ΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠ°), ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ Π½Π° Π½ΠΎΠ²ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, Ρ Π½Π°Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠ°ΠΊ Π½Π΅ Π±ΡΠ»ΠΎ, ΡΠ°ΠΊ ΠΈ Π½Π΅Ρ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ. ΠΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ eventual constistency, ΡΠΎ Π΅ΡΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π² ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ (ΠΎΠ΄Π½Π°ΠΊΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ ΡΠ°Π·Π½ΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ). Π, ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΡΡΠΈΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π±Π΅Π· ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ½Π΅Ρ Π·Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΠ°.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ Π½Π°Ρ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎ ΠΎΠ½Π»Π°ΠΉΠ½ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠΆΠ΅ Π΄Π°Π΅Ρ Π½Π°ΠΌ ΡΡΠ΄ Π±ΠΎΠ½ΡΡΠΎΠ²:
- ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ, ΠΏΡΠΈΡΠ΅ΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. Π’Π΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°.
- ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Ρ
ΡΠ°Π½ΠΈΡΡ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ
Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Enterprise ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π·Π°ΡΠ°ΡΡΡΡ ΡΡΠ΅Π±ΡΡΡ Ρ
ΡΠ°Π½ΠΈΡΡ ΠΈΡ
Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠΎΠ΄ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ
Π΄Π°ΡΠ°ΡΠ΅Π½ΡΡΠ°Ρ
(Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ΅ΠΊ Π΄Π°Π½Π½ΡΡ
). ΠΠ° ΡΡΠ΅Ρ sharding ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π»Π΅Π³ΠΊΡΡ ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°ΡΡ. Π Π·Π°Π΄Π°ΡΠ° Π΅ΡΠ΅ ΡΠΏΡΠΎΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Ρ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ° Π΅ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠ΅ ΠΎΠ±Π»Π°ΠΊΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
Azure self hosted ). - Π ΡΠ°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ β ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ. ΠΠ΅Π΄Ρ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°Ρ Π²ΠΏΠΎΠ»Π½Π΅ Π±Ρ ΡΡΡΡΠΎΠΈΠ»ΠΎ ΠΎΠ΄Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ² (ΡΡΠΎΠ±Ρ ΠΏΠΎΠ±ΡΡΡΡΠ΅Π΅ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ). Π ΠΊΠ»ΡΡΠ΅Π²Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ β Ρ ΠΎΡΡ ΠΎΠ½Π° ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠ°, Π½Π° Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΎΠ½Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°. ΠΡΠΎΡΡΠΎ Π½Π΅ Π½Π°Π΄ΠΎ ΡΡΠ°Π·Ρ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Ρ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ ΠΈ Ρ.Π΄. ΠΡΠ»ΠΈ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ, ΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
Static Content Hosting
ΠΡΠΎΡ ΠΏΡΠ½ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π½Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ³ΠΎ ΡΡΡΡ ΠΏΡΠΎΡΡΠ°: Π²Π΅ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΡΠ°Π·Π΄Π°Π΅ΡΡΡ Π½Π΅ Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π³Π΄Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ
, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ
ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄ ΡΡΠΎ Π΄Π΅Π»ΠΎ. ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅ (ΡΡΠ»ΠΎΠ²Π½ΡΠΉ nginx ΠΎΡΠ΄Π°Π΅Ρ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π΅Π΅, ΠΈ ΠΌΠ΅Π½Π΅Π΅ Π·Π°ΡΡΠ°ΡΠ½ΠΎ, ΡΠ΅ΠΌ Java-ΡΠ΅ΡΠ²Π΅Ρ). ΠΠ»ΡΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° CDN (
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° β ΡΡΠΎ Π½Π°Π±ΠΎΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΎΠΊ Π΄Π»Ρ ΡΠ°ΠΉΡΠ°. Π‘ Π½ΠΈΠΌΠΈ Π²ΡΡ ΠΏΡΠΎΡΡΠΎ β ΠΎΠ½ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ Π·Π°ΡΠ°Π½Π΅Π΅, Π΄Π°Π»Π΅Π΅ Π°ΡΡ ΠΈΠ² Π²ΡΠ³ΡΡΠΆΠ°Π΅ΡΡΡ Π½Π° CDN ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΎΡΠΊΡΠ΄Π° ΡΠ°Π·Π΄Π°ΡΡΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ.
ΠΠ΄Π½Π°ΠΊΠΎ Π½Π° Π΄Π΅Π»Π΅ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ΅ΠΌ-ΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ Π½Π° Π»ΡΠΌΠ±Π΄Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ. ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π½Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠ΅ (ΠΎΠ½Π»Π°ΠΉΠ½ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²), Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ. Π‘Π°ΠΌΠΎΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² Π»ΠΎΠ± β ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π΅Π»Π°Π΅Ρ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ (Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠ΄), Π° ΠΏΠΎΡΠΎΠΌ ΡΠΊΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ» Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Ρ Π½Π°ΡΠ΅Π³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°. ΠΠ»Π°Π²Π½ΡΠΉ ΠΌΠΈΠ½ΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° β ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ (Π° ΡΠ°ΠΉΠ» Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π²ΠΈΠ·ΠΈΠ΅ΠΉ, ΠΏΠΎ ΡΡΡΠΈ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ) ΡΠ°Π·Π΄Π°Π΅ΡΡΡ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΡΡΠΎ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡ Π΅ΠΌΡ:
- Π‘Π΅ΡΠ²Π΅Ρ Π²ΡΠ΄Π°Π΅Ρ URL Π΄Π»Ρ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΈΠ΄Π° file_id + key, Π³Π΄Π΅ key β ΠΌΠΈΠ½ΠΈ-ΡΠΈΡΡΠΎΠ²Π°Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡ, Π΄Π°ΡΡΠ°Ρ ΠΏΡΠ°Π²ΠΎ Π½Π° Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΡ Π½Π° Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠ΅ ΡΡΡΠΊΠΈ.
- Π Π°Π·Π΄Π°ΡΠ΅ΠΉ ΡΠ°ΠΉΠ»Π° Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ nginx ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΎΠΏΡΠΈΡΠΌΠΈ:
- ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎΡ ΡΠ΅ΡΠ²ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΌΡ ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΡΠ΅Π±Π΅ Π·Π°Π΄Π΅Π» Π½Π° Π±ΡΠ΄ΡΡΠ΅Π΅ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Ρ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠΊΠ°ΡΠ°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π° Π΄ΠΈΡΠΊΠ΅.
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠ»ΡΡΠ° Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ
- ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ: ΠΏΠΎΡΠΎΠΊΠΎΠ²Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠΆΠΈΠΌΠ°Π΅ΠΌ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ΅ΡΠ²ΠΈΡΠ΅, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΡΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅. ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅: IO ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΄Π΅Π»Π°Π½Ρ ΡΠ°ΠΌ, Π³Π΄Π΅ ΠΈΠΌ ΡΠ°ΠΌΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ. ΠΡΡ ΠΈΠ²Π°ΡΠΎΡ Π½Π° Java Π»Π΅Π³ΠΊΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π΅Π»ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡΠ½Π΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡ Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ Π½Π° ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ Rust/C++ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠΎΠΆΠ΅ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ. Π Π½Π°ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ (ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ), Π° ΠΏΠΎΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈ IO ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΡΡ Π΅ΠΌΠ° Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΡΠ°Π·Π΄Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° (ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ Π½Π΅ Π²ΡΠ³ΡΡΠΆΠ°Π΅ΠΌ Π²Π΅ΡΡ ΠΏΠ°ΠΊΠ΅Ρ ΡΡΠ°ΡΠΈΠΊΠΈ ΠΊΡΠ΄Π°-ΡΠΎ), ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ°Π·Π΄Π°ΡΠ΅ΠΉ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΡΡ ΡΡ Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠ±ΡΠ°ΡΡ ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ, Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡΠ° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΈ Π½Π΅ΡΠ΄Π°Π»ΡΠ΅ΠΌΡΡ Π±Π»ΠΎΠΊΠΎΠ² (Ρ ΠΎΡΡ ΠΎΠ½ΠΈ ΠΈ ΠΌΠΎΠ³ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ).
ΠΠ°ΠΊ Π΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ (Π΄Π»Ρ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ): Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ Jenkins/TeamCity, ΡΠΎ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΎΠ±Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° Java. ΠΠ±Π° ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Java-ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΠ΅ΠΉ Π±ΠΈΠ»Π΄ΠΎΠ², ΡΠ°ΠΊ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½ΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Ρ Π½ΠΈΡ ΠΎΠ±ΠΎΠΈΡ Π΅ΡΡΡ Π·Π°Π΄Π°ΡΠΈ Π²ΠΈΠ΄Π° "ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ°ΠΉΠ»/ΠΏΠ°ΠΏΠΊΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°". ΠΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Ρ: Π²ΡΠ΄Π°ΡΠ° Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΎΠ², ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (ΠΊΠΎΠ³Π΄Π° Π°Π³Π΅Π½Ρ Π½Π΅ ΡΠΊΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ΄ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π° Π·Π° Π½Π΅Π³ΠΎ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠ΅ΡΠ²Π΅Ρ), Π΄ΠΎΡΡΡΠΏ ΠΊ Π»ΠΎΠ³Π°ΠΌ. ΠΡΠ΅ ΡΡΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ Π½Π° IO. Π’ΠΎ Π΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ΅ΡΠ²Π΅Ρ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° ΡΠ»ΠΎΠΆΠ½ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ, Π·Π°ΠΎΠ΄Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΌΠ΅ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π±Ρ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π΄Π°Π½Π½ΡΡ . Π ΡΡΠΎ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΌΡ ΠΆΠ΅ nginx’Ρ ΠΏΠΎ ΡΠΎΠ²Π½ΠΎ ΡΠΎΠΉ ΠΆΠ΅ ΡΡ Π΅ΠΌΠ΅ (ΡΠ°Π·Π²Π΅ ΡΡΠΎ Π² Π·Π°ΠΏΡΠΎΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠ»ΡΡ Π΄Π°Π½Π½ΡΡ ).
ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΡΡ Π΅ΠΌΠ°:
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°Π΄ΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΠΈΠ»Π°ΡΡ. Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΌΠΈΠ½ΠΈ-ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡ ΡΠ°ΠΉΠ»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ. Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΆΠ΅ Π½Π΅ ΡΠ°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°, ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π° Π²Π΅ΡΡΠΈΡΠΌΠΈ API ΠΈ Ρ.Π΄. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Ρ, Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ, ΡΡΠΎΠΈΡ Π»ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π·Π°ΡΡΠ°Ρ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΡΡΠΈΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠΈΡΠ»ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ), ΡΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΠΉΡΠΈ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ°ΡΠΎ, ΠΊΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΡΠΈΡΡΠ΅ΠΌΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½Π° Π³ΠΎΡΠΎΠ²Π° ΠΊ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ (ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ). Π‘ΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π±Π΅Π· Π΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ (ΠΏΡΠΎΡΡΠΎ-Π½Π°ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΡΠΎΡΠΌΠΎΠ·ΡΡΡΡ).
ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ» Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅, ΡΠ΅ΠΉΡΠ°Ρ ΡΡΠ΄ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΡΠ°Π» ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎ ΡΡΠ°Π»ΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎ ΡΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡΠΊΠ°Π·Π°Π»ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΊΠ°ΠΊ ΡΠ°Π· Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π°ΡΡ Π΄Π΅Π½ΡΠ³ΠΈ. Π’ΠΎ Π΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ, Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ Β«ΡΠ°ΡΠΏΠ»Π°Π½ΠΈΡΡΠΉΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΊΡ Π½Π° Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠ΅ ΠΌΠ΅ΡΡΡΡΒ», ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·Π°Π»Π° Β«ΠΈΠ΄ΠΈΡΠ΅ ΠΊ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ°ΠΌΒ». Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ ΠΈ Π΅ΡΡΡ ΡΠ΅Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ: ΠΏΠΎΡΠ΅ΡΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ±ΡΠ»Ρ Π±ΡΠ»Π° Π±Ρ Π½Π°ΠΈΠ²ΡΡΡΠ΅ΠΉ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠ΅ ΡΡΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ Π±ΡΠ»ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΠΈ ΡΠ°Π½ΡΡΠ΅. Π’ΠΎΡ ΠΆΠ΅ VK Π΄Π°Π²Π½ΠΎ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΈΠ΄Π΅Ρ Static Content Hosting Π΄Π»Ρ Π²ΡΠ΄Π°ΡΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΎΠΊ. ΠΡΡΠ° ΠΎΠ½Π»Π°ΠΉΠ½-ΠΈΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Sharding ΡΡ Π΅ΠΌΡ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ³ΡΠΎΠΊΠΎΠ² ΠΏΠΎ ΡΠ΅Π³ΠΈΠΎΠ½Π°ΠΌ ΠΈΠ»ΠΈ ΠΆΠ΅ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ³ΡΠΎΠ²ΡΡ Π»ΠΎΠΊΠ°ΡΠΈΠΉ (Π΅ΡΠ»ΠΈ ΡΠ°ΠΌ ΠΌΠΈΡ Π΅Π΄ΠΈΠ½ΡΠΉ). Event Sourcing ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠ΅. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ², Π³Π΄Π΅ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Π΄Π°Π½Π½ΡΠ΅, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½Ρ Π½Π° CQRS ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΡ ΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π°Π²Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ .
ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ ΡΠ°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅, Π²ΡΠ΅ ΡΡΠΈ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΡΡΠ°Π»ΠΎ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΊ ΠΌΠ΅ΡΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ). ΠΠ±Π»Π°ΠΊΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Sharding ΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π·Ρ, ΡΡΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Π³ΡΠ΅, ΡΠ΅ΠΌ Π·Π°ΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ Π² ΡΠ°Π·Π½ΡΡ Π΄Π°ΡΠ°ΡΠ΅Π½ΡΡΠ°Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. CQRS ΡΡΠ°Π» Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Π³ΡΠ΅ Ρ ΠΎΡΡ Π±Ρ ΠΈΠ·-Π·Π° ΡΠ°Π·Π²ΠΈΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ RX. ΠΠ΅Ρ 10 Π½Π°Π·Π°Π΄ ΡΠ΅Π΄ΠΊΠΈΠΉ web ΡΠ°ΠΉΡ ΡΠΌΠΎΠ³ Π±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°ΠΊΠΎΠ΅. Event Sourcing Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠΆΠ΅ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π·Π° ΡΡΠ΅Ρ ΡΠΆΠ΅ Π³ΠΎΡΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Ρ Apache Kafka. ΠΠ΅Ρ 10 Π½Π°Π·Π°Π΄ ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΠ΅ΠΉ, ΡΠ΅ΠΉΡΠ°Ρ ΡΡΠΎ ΠΎΠ±ΡΠ΄Π΅Π½Π½ΠΎΡΡΡ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΈ Ρ Static Content Hosting: ΠΈΠ·-Π·Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ Π±ΠΎΠ»ΡΡΠ°Ρ Π±Π°Π·Π° ΠΎΡΠ²Π΅ΡΠΎΠ²), ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΡΠ°Π» Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ.
ΠΠ°ΠΊ ΠΈΡΠΎΠ³, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΄Π° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠ°Π»Π° Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅, Π° Π·Π½Π°ΡΠΈΡ ΠΊ Π½Π΅ΠΉ Π»ΡΡΡΠ΅ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΡΠΈΡΠΌΠΎΡΡΠ΅ΡΡΡΡ. ΠΡΠ»ΠΈ Π² Π΄Π΅ΡΡΡΠΈΠ»Π΅ΡΠ½Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΡΠΊΠ°Π·Π°Π»ΠΈΡΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π²ΡΡΠ΅ ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ΅Π½Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ, ΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ, Π² Π½ΠΎΠ²ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎ ΡΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΌ (Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ), ΡΠ°ΠΊ ΠΈ Π³ΠΎΡΠΎΠ²ΡΠΌ ΠΊ Π½ΠΎΠ²ΡΠΌ Π·Π°ΠΏΡΠΎΡΠ°ΠΌ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ).
Π ΡΠ°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅: Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΡΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ°, ΠΎΠ½ΠΈ ΠΊΡΠ°ΡΠΈΠ²ΡΠ΅ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ΡΠ°ΠΉΡΠ° Ρ ΠΏΠΈΠΊΠΎΠ²ΡΠΌ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² 100 ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Π·Π°ΡΠ°ΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠΎΠΌ (ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ ΡΠ½Π°ΡΡΠΆΠΈ, Π²Π½ΡΡΡΠΈ Π²ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ Ρ.Π΄.).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com