README.md
September 1, 2026 · View on GitHub
GoAkt is a distributed actor framework for Go, inspired by Erlang and Akka. In development since 2022 and used in production, it lets you build responsive, resilient, and elastic systems with typed actor messages, running as a single process or a cluster of nodes behind the same API.
- Simpler concurrency. Actors process one message at a time; you write plain Go with no locks, channel plumbing, or shared-state bugs.
- Location transparency. Send a message to a local, remote, or clustered actor with the same API; the framework handles the wire.
- Resilience by design. Supervision trees and the "let it crash" model, inspired by Erlang/OTP, keep failures contained and recoverable.
- Production batteries included. Clustering, virtual actors (grains), CRDTs, streams, scheduling, passivation, and observability, without re-rolling them yourself.
Teams use GoAkt for event processing, IoT and edge workloads, real-time platforms, and distributed backends that would otherwise need a message broker plus custom coordination code.
New to the actor model? Actors are isolated units of computation that share no memory, each with a mailbox, private state, and one message in flight at a time. On a message, an actor can create more actors, send messages, or change how it handles the next one. For more depth, watch Carl Hewitt, the father of the actor model, explain it in his own words:
See the documentation for the full feature reference.
Installation
go get github.com/tochemey/goakt/v4
Examples
See the examples repository for runnable code covering local, remote, and clustered actor systems.
In Production
This framework is used in production by the following projects/companies:
- Baki Money: AI-powered expense tracking platform that turns receipts into stories.
- Event Processor: Clustered Complex Event Processor (CEP) for IoT data streams.
Security
Applications using this library should routinely upgrade their Go version and refresh dependencies as needed to mitigate security vulnerabilities. GoAkt will make a best effort to keep dependencies current and perform vulnerability checks whenever necessary. To report a vulnerability, use GitHub's Report a Vulnerability form, as described in SECURITY.md.
Community
Ask questions and follow the work in Discussions, Issues, or on Slack. Feedback on the tracking issue helps shape what we work on next.
Contribution
We welcome contributions: bug fixes, new features, and documentation improvements. Before diving in, read the Architecture Document to understand the codebase. We use Conventional Commits and a Docker-backed Makefile so contributors only need Docker and Make installed; run make help to see the available targets.
See contributing.md for prerequisites, setup, and the full contribution workflow, the other design documents covering the dispatcher pool, CRDTs, streams, reentrancy, and reliable delivery, and the benchmark suite for the performance harness.
Sponsors
GoAkt is free and open source. If you need priority support on complex topics or want to fund new features, consider sponsorship.

Credits
The Go gopher was designed by Renée French and is used under the CC BY 4.0 license.
