Ergo Framework 3.2

Фреймворк представляет собой реализацию концепций 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, отладка зависших процессов
Ссылки
>>> Список изменений
