Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ Erlang Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Go, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π°ΠΊΡΠΎΡΠΎΠ² Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡΡ ΠΈ Π³ΠΎΡΠΎΠ²ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ
- mTLS β Π½ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ gen.CertAuthManager Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ CA ΠΏΡΠ»Π°ΠΌΠΈ
- NAT traversal β ΠΎΠΏΡΠΈΠΈ RouteHost ΠΈ RoutePort Π΄Π»Ρ ΡΠ·Π»ΠΎΠ² Π·Π° NAT ΠΈΠ»ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ°ΠΌΠΈ
- ΠΠΎΠ½ΡΡΠΎΠ»Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°ΠΏΡΡΠΊΠ° β InitTimeout ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² (Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ)
- Shutdown timeout β ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ·Π»Π° Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π·Π°Π²ΠΈΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²
- pprof labels β ΠΊΠ°ΠΆΠ΄Π°Ρ Π³ΠΎΡΡΡΠΈΠ½Π° Π°ΠΊΡΠΎΡΠ° ΠΌΠ°ΡΠΊΠΈΡΡΠ΅ΡΡΡ PID Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠ΅ΡΠ΅Π· pprof
ΠΠΎΠ²ΡΠ΅ Π°ΠΊΡΠΎΡΡ (Extra Library)
- Leader β ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π²ΡΠ±ΠΎΡΡ Π»ΠΈΠ΄Π΅ΡΠ° Ρ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΡΠΎΠΌ Π² ΡΡΠΈΠ»Π΅ Raft. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ failover, Π·Π°ΡΠΈΡΠ° ΠΎΡ split-brain ΡΠ΅ΡΠ΅Π· ΠΊΠ²ΠΎΡΡΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π°
- Metrics β ΡΠΊΡΠΏΠΎΡΡΠ΅Ρ ΠΌΠ΅ΡΡΠΈΠΊ Prometheus Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ±ΠΎΡΠΎΠΌ ΡΠ΅Π»Π΅ΠΌΠ΅ΡΡΠΈΠΈ ΡΠ·Π»Π° ΠΈ ΡΠ΅ΡΠΈ
ΠΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠ°-ΠΏΡΠΎΡΠ΅ΡΡΡ
- SSE (Server-Sent Events) β ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΡΡΡΠΈΠΌΠΈΠ½Π³ ΡΠ΅ΡΠ²Π΅Ρ-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎ HTTP Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ SSE
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
- ΠΠΎΠΊΠ°Π»ΡΠ½ΠΎ: 21M+ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ/ΡΠ΅ΠΊ
- ΠΠΎ ΡΠ΅ΡΠΈ: ~5M ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ/ΡΠ΅ΠΊ
- Distributed Pub/Sub: 2.9M ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ/ΡΠ΅ΠΊ Π΄ΠΎΡΡΠ°Π²ΠΊΠ° 1,000,000 ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠ°ΠΌ Π½Π° 10 ΡΠ·Π»Π°Ρ (10 ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π²ΠΌΠ΅ΡΡΠΎ 1M)
ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
- ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π±Π°Π³: ΡΠΈΠ³Π½Π°Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ (Link/Monitor exits) Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ»ΠΈΡΡ ΠΈΠ·-Π·Π° Π½Π΅Π²Π΅ΡΠ½ΠΎΠΉ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ incarnation Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΌ ΡΠ»ΠΎΠ΅
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Π° ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. ΠΠΎΠ²ΡΠ΅ ΡΡΠ°ΡΡΠΈ:
- Project Structure β ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ ΡΡΠΎΠ²Π½ΡΠΌΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
- Building a Cluster β ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ
- Message Versioning β ΡΠ²ΠΎΠ»ΡΡΠΈΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΎΠ² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ°Ρ
- Debugging β build tags, pprof, ΠΎΡΠ»Π°Π΄ΠΊΠ° Π·Π°Π²ΠΈΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²
Π‘ΡΡΠ»ΠΊΠΈ
- ΠΡΠΈΠΌΠ΅ΡΡ: https://github.com/ergo-services/examples
- ΠΠ΅Π½ΡΠΌΠ°ΡΠΊΠΈ: https://github.com/ergo-services/benchmarks
- Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ: https://github.com/ergo-services/ergo
- Π‘Π°ΠΉΡ: https://ergo.services
ΠΡΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru

