Go MIT

goakt

[Go]Distributed Actor/Grain framework for Golang with goodies

T

Tochemey

Dernière activité 28 sept. 2026
Tochemey/goakt

385

étoiles

44

forks

0

issues ouvertes

actor-frameworkactor-modelactorsactorsystemcloud-computingconcurrent-programmingdistributeddistributed-systemdistributed-systemserlang-otpevent-sourcinggogolanggolang-librarygrainshigh-performanceprotoprotocol-buffersvirtual-actors

Ce README est souvent en anglais.

GoAkt

build Go Reference codecov GitHub go.mod Go version Latest Release License Awesome Join our Slack

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:

Carl Hewitt on the actor model

See goakt.dev for an overview and 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

These systems run GoAkt in production:

  • Baki Money: AI-powered expense tracking platform that turns receipts into stories. Actors cache the app's data today, with wider use of the framework planned.
  • Analytics platform: a self-hosted analytics platform that collects behavioural and telemetry data across several product lines. It runs as one Go monolith on Kubernetes at about 31 pods, with GoAkt as the entire distribution layer: no message broker, no service mesh and no external actor registry. Inbound WebSocket and SSE connections are cluster-named actors, outbound integrations are single-activation grains, reporting fans out over messages, and cluster single-fire cron lets an external scheduler retire. In their words, "the actor core has not been a source of surprises". Read the full production report.

Being built on GoAkt:

  • V-App IoT Builder: a clustered Complex Event Processor that lets end users graphically design rules applied to incoming sensor data and react to environment changes.
  • Galaxy: a distributed real-time game platform. It uses clustered actors and grains for player state, matchmaking lobbies, game sessions, authoritative clocks, persistence and node relocation, with NATS JetStream for durable state, event logs and reliable WebSocket delivery.

Running GoAkt in production? Write a short report to be listed here, or tell us how it is going in the feedback discussion.

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

CLA

We welcome contributions: bug fixes, new features, and documentation improvements. Before diving in, read the architecture overview of GoAkt from the Inside, the maintainers' book, 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.

User avatar: Andrew BrownUser avatar: StringKe

Projets similaires

Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin

Goactor-modelactorsakka
Aasynkron
5,5 k étoiles571

An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang. Zero dependencies.

Goactor-modelactorsdistributed
Eergo-services
4,7 k étoiles191

Blazingly fast and light-weight Actor engine written in Golang

Goactor-modeldistributed-systemsfault-tolerance
Aanthdm
2,3 k étoiles180