Build a distributed backend where individual nodes can crash and restart without taking down the whole system
Replace a message broker by routing work between Go services using the built-in actor and pub/sub system
Add automatic self-healing to a background worker pipeline so crashed workers restart under a supervisor
Write a TCP or HTTP server that feeds incoming connections into an actor-based processing loop
Requires Go 1.20 or newer, familiarity with concurrent programming concepts is strongly recommended.
Ergo is a Go programming framework that brings ideas from Erlang, a language known for building systems that stay running even when parts fail. The core concept is the actor model: instead of shared memory that many parts of a program touch at once, you build a system of isolated actors that each have their own state and communicate only by sending messages to each other. This makes concurrent systems easier to reason about and test. A key property Ergo calls network transparency means an actor does not need to know whether it is talking to another actor on the same machine or one running on a server across the world. The framework handles routing, serialization, and connection management in the background, so application code is the same either way. This makes it practical to distribute work across multiple nodes without rewriting business logic. When parts of the system fail, supervision trees handle recovery. Supervisors watch groups of child actors and apply configurable restart strategies when one crashes: restart only that one, restart the whole group, or restart everything that started after the failure. These patterns come from Erlang's OTP design and are intended to build self-healing services. The README also describes meta processes, which act as adapters for blocking network protocols like TCP, UDP, and HTTP, feeding their events into the actor system without blocking the message processing loop. Built-in service discovery, distributed publish/subscribe messaging, and remote process spawning are included for multi-node setups. On a 64-core machine, the README reports over 21 million messages per second for local messaging and close to 5 million per second over the network. The framework has zero external dependencies, requires Go 1.20 or higher, and is released under the MIT license. A command-line tool for generating project scaffolding and a visual observer tool for inspecting running nodes are available separately.
← ergo-services on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.