Ergo Framework — Actor Model and Network Transparency for Go
Build distributed, fault-tolerant systems with the power of Erlang's proven patterns — in pure Go. Fully open source under MIT License — use freely in commercial projects.
Get Started | View on GitHub
Core Features
Everything you need to build resilient distributed systems in Go.
Actor Model
Isolated processes communicate through message passing with four priority queues. Support for async messaging, sync request-response patterns, and built-in Cron scheduler with second-level precision.
Network Transparency
Actors interact identically whether local or remote. Custom EDF serialization with connection pooling, compression (GZip/Zstd), and message fragmentation.
Supervision Trees
Hierarchical fault recovery with multiple strategies: One-For-One, All-For-One, Rest-For-One, Simple-One-For-One. Self-healing systems out of the box.
Meta Processes
Bridge blocking I/O with actors through dedicated meta processes for TCP, UDP, WebSocket, SSE, and external programs (Port).
Distributed Systems
Service discovery (etcd, Saturn), remote process spawning, and remote application orchestration across clusters.
Observability
Built-in Observer web dashboard for real-time cluster inspection, ready-to-use Grafana dashboard for production monitoring, Prometheus metrics, mailbox latency measurement, and MCP protocol support.
Leader Election
Distributed leader election with Raft-inspired consensus. Term-based disambiguation, automatic failover, split-brain prevention through majority quorum. Zero external dependencies.
Events and Pub/Sub
Distributed publish/subscribe with token-based authorization, event buffering, and configurable notification modes. Subscribe across nodes transparently.
MCP Protocol Support
Built-in Model Context Protocol support in three modes: Server mode for exposing tools and resources, Client mode for consuming MCP services, and Agent mode for secure remote access through NAT without open ports.
Performance
21M+ messages per second throughput. Custom EDF serialization with type caching — up to 47% faster encoding than Protobuf, 6-14x faster than Gob. Supports pointer types and automatic struct marshaling.
Key Highlights
Erlang Interoperability
Connect to Erlang/OTP nodes seamlessly. Full EPMD, ETF, and DIST protocol support for hybrid Go/Erlang clusters. Compatible with OTP 23+.
Production Ready
mTLS with custom CA pool management, NAT traversal, software keepalive, important delivery for guaranteed messaging, graceful shutdown, panic recovery with stack traces, and max message size limits for DoS protection.
Kubernetes Native
Radar — health probes and Prometheus on one port. Liveness, readiness, startup endpoints. Container-friendly, zero external dependencies.
What You Can Build
Microservices, real-time systems, IoT backends, financial systems, gaming servers, and edge computing applications.
Quick Start
Install: go install ergo.tools/ergo@latest
Generate a project: ergo -init MyNode -with-app MyApp -with-sup MyApp:MySup -with-actor MySup:MyActor -with-observer
Run: cd mynode && go run ./cmd