# Ergo Framework > Open-source Go framework implementing Erlang's actor model and network transparency for building distributed, fault-tolerant systems. ## Overview Ergo Framework is a production-ready Go framework that brings Erlang/OTP's proven actor model patterns to the Go ecosystem. It enables developers to build distributed, fault-tolerant systems using lightweight actors, supervision trees, and transparent network communication — all in pure Go with no external dependencies. ## Key Facts - Language: Go (1.20+) - License: MIT (free for commercial use) - Performance: 21M+ messages per second - Serialization: Custom EDF — 47% faster than Protobuf, 6-14x faster than Gob - Active development since 2017 - Repository: https://github.com/ergo-services/ergo - Documentation: https://docs.ergo.services - Website: https://ergo.services ## Core Features ### Actor Model Isolated processes communicate through message passing with four priority queues. Supports 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. ### MCP Protocol Support Built-in Model Context Protocol in three modes: - Server mode: Expose tools, resources, and prompts as an MCP server - Client mode: Consume MCP services from any provider - Agent mode: Secure remote MCP access through NAT without open ports ### Observability Built-in Observer web dashboard, Grafana dashboard, Prometheus metrics, mailbox latency measurement. ### Leader Election Distributed leader election with Raft-inspired consensus. Term-based disambiguation, automatic failover, split-brain prevention through majority quorum. Zero external dependencies. ### Erlang Interoperability Connect to Erlang/OTP nodes seamlessly. Full EPMD, ETF, and DIST protocol support for hybrid Go/Erlang clusters. ### Kubernetes Native Health probes and Prometheus on one port (Radar), liveness/readiness/startup endpoints, automatic failure detection via heartbeat. ## Use Cases - Microservices with actor-per-request and supervision trees - Real-time systems requiring 21M+ msg/sec throughput - IoT backends with TCP/UDP meta processes - Financial systems with guaranteed message delivery - Gaming servers with lightweight actors and WebSocket support - Edge computing with small binary footprint and NAT traversal ## Quick Start ``` go install ergo.tools/ergo@latest ergo -init MyNode -with-app MyApp -with-sup MyApp:MySup -with-actor MySup:MyActor -with-observer cd mynode && go run ./cmd ``` ## Links - Website: https://ergo.services - Documentation: https://docs.ergo.services - GitHub: https://github.com/ergo-services/ergo - Telegram: https://t.me/ergo_services - Reddit: https://reddit.com/r/ergo_services