A distributed actor framework for Go that enables building scalable, reactive systems with typed messages and clustering.
GoAkt is a distributed actor framework for Go that implements the actor model to build concurrent and distributed systems. It provides the necessary features to create scalable, fault-tolerant applications across a cluster of computers without sacrificing performance or reliability.
Go developers building highly concurrent, scalable, and fault-tolerant distributed systems, such as clustered event processors, IoT data stream processors, or multi-datacenter applications.
Developers choose GoAkt for its comprehensive, production-ready feature set including built-in CRDTs for distributed data, reactive streams with backpressure, multi-datacenter support, and multiple clustering backends, all while maintaining performance and reliability in a Go-native implementation.
[Go] Distributed Actor/Grain framework for Golang with goodies
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports multiple discovery mechanisms including Consul, etcd, Kubernetes, and mDNS, enabling flexible deployment in diverse environments as listed in the features table.
Includes CRDTs like GCounter and ORSet with delta-based replication and anti-entropy synchronization, reducing the need for external databases for eventually consistent state.
Offers DC-transparent messaging and pluggable control planes (e.g., NATS JetStream), allowing seamless operation across geographically dispersed data centers without code changes.
Integrates OpenTelemetry for metrics and tracing, plus event stream monitoring for dead letters, aiding in debugging and performance tuning in real-world deployments.
The README highlights breaking changes from v3 to v4, requiring updates to message serialization and APIs, which can disrupt existing projects and increase maintenance effort.
Clustering relies on external systems like Consul or etcd for discovery, adding operational complexity, potential points of failure, and additional infrastructure costs.
Mastering the actor model, distributed data concepts, and the framework's extensive APIs (e.g., reactive streams DSL) can be time-consuming for teams new to distributed systems.