Ten steps, in order. Each one is its own Go module,
each adds exactly one idea to the one before it, and each README.md says what
to look for in the output. The domain is the same throughout: a task runner.
| Step | What it adds |
|---|---|
| 01 - The first actor | An actor, a mailbox, Send and Call |
| 02 - When a worker dies | A supervisor, restarts, and the limit on them |
| 03 - Making it an application | An application, its group, and who owns a resource |
| 04 - Two nodes | The network: node names, the cookie, wire types, monitors |
| 05 - Events | One publisher, several subscribers, and a buffer |
| 06 - A pool of workers | act.Pool, and what it does when it cannot keep up |
| 07 - Testing it | testing/unit for one actor, testing/stage for two nodes |
| 08 - Looking inside | The observer, and an AI agent over MCP |
| 09 - Talking to Erlang | The same code, driven from an erl shell |
| 10 - An external program | Running a program in another language and talking to it |
Start at 01. Steps 01 to 08 keep the observer on http://localhost:9911, so there is always a running system to look at, and step 08 is about reading it. Step 09 is the only one that needs anything installed: Erlang.
Not a lesson but a stand: a five-node cluster under continuous load, with Prometheus metrics, Grafana dashboards, distributed tracing and the observer, so that every observability tool has something to work with. Runs with Docker Compose. See observability/README.md for the details.
The framework documentation is at https://docs.ergo.services. The examples here deliberately show one thing at a time; the documentation is where the full API lives.