Goer documentation
A guide to systems that keep going.
If you build services in Go, you know the feeling: one thing breaks and suddenly everything’s on fire. These docs are about a different way to build, where a broken piece gets restarted and the rest carries on. Goer is an experiment, and we’ll be straight with you about what works and what doesn’t.
The main word to know is process (some people say actor). It’s one small worker that keeps its own data and reads its own inbox. The docs come in four layers, and each one only needs the one before it: get something running, find out what’s underneath, look up exact spellings, then learn to watch it live.
Two kinds of code show up here. Your regular Go code imports goer and calls goer.NewSystem() (or lets the goer command do that for you). The process code is written in imgo, a cut-down Go, in files marked //go:build goer. There’s also a lower-level goer/runtime package for when you need it.
Tutorials
Run one process. Then make it crash and recover, change it live, let it talk to the outside world, and build a small app.
Start here →02Architecture
What’s underneath, one layer at a time, in plain words first.
See how it works →03Reference
The exact spelling of everything: the language, the Go API, the tools.
Look it up →04Operate
The live dashboard: pause a process, step through it, read a crash report.
Watch it run →A few more pages go deeper once you’ve got the basics.
Distribution
Running across more than one machine, and what happens when one drops off.
Go multi-machine →06Performance
Where the time goes, with the numbers we measured.
See the numbers →07CRDT state
Data that lives on several machines and still ends up agreeing.
Share data safely →08The imgo language
What the cut-down Go keeps, what it drops, and why.
Learn the dialect →10Glossary
Every word we use, explained in a sentence or two.
Look up a word →09Playground
Write a process and run it right here in your browser. Nothing to install.
Try it now →