https://github.com/Tochemey/goakt
[Go] Fast and Distributed Actor framework using protocol buffers as message for Golang
https://github.com/Tochemey/goakt
actor-framework actor-model actor-system actors actorsystem cloud-computing concurrent-programming distributed distributed-system distributed-systems erlang-otp event-sourcing framework go go-actor golang golang-library high-performance proto protocol-buffers
Last synced: 10 months ago
JSON representation
[Go] Fast and Distributed Actor framework using protocol buffers as message for Golang
- Host: GitHub
- URL: https://github.com/Tochemey/goakt
- Owner: Tochemey
- License: mit
- Created: 2022-11-06T20:54:14.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-12-15T18:14:55.000Z (over 1 year ago)
- Last Synced: 2024-12-16T08:59:18.190Z (over 1 year ago)
- Topics: actor-framework, actor-model, actor-system, actors, actorsystem, cloud-computing, concurrent-programming, distributed, distributed-system, distributed-systems, erlang-otp, event-sourcing, framework, go, go-actor, golang, golang-library, high-performance, proto, protocol-buffers
- Language: Go
- Homepage:
- Size: 2.42 MB
- Stars: 195
- Watchers: 4
- Forks: 13
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: contributing.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: code_of_conduct.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-go-cn - Goakt
- awesome-go-with-stars - Goakt - 03-16 | (Actor Model)
- awesome-go - Goakt - Fast and Distributed Actor framework using protocol buffers as message for Golang. (Actor Model)
- awesome-go - Tochemey/goakt
- awesome-go-cn - Goakt
- fucking-awesome-go - Goakt - Fast and Distributed Actor framework using protocol buffers as message for Golang. (Actor Model)
- awesome-go-plus - Goakt - Fast and Distributed Actor framework using protocol buffers as message for Golang.  (Actor Model)
- awesome-ccamel - Tochemey/goakt - [Go] Distributed Actor/Grain framework for Golang with goodies (Go)
- awesome - Tochemey/goakt - [Go] Distributed Actor/Grain framework using protocol buffers as message for Golang (<a name="Go"></a>Go)
- my-awesome - Tochemey/goakt - framework,actor-model,actors,actorsystem,cloud-computing,concurrent-programming,distributed,distributed-system,distributed-systems,erlang-otp,event-sourcing,go,golang,golang-library,grains,high-performance,proto,protocol-buffers,virtual-actors pushed_at:2026-05 star:0.4k fork:0.0k [Go] Distributed Actor/Grain framework for Golang with goodies (Go)
README
# GoAkt
[](https://github.com/Tochemey/goakt/actions/workflows/build.yml)
[](https://pkg.go.dev/github.com/tochemey/goakt)
[](https://goreportcard.com/report/github.com/tochemey/goakt)
[](https://codecov.io/gh/Tochemey/goakt)
[](https://go.dev/doc/install)
[](https://github.com/avelino/awesome-go)
[](https://www.bestpractices.dev/projects/9248)
Distributed [Go](https://go.dev/) actor framework to build a reactive and distributed system in golang using
_**protocol buffers**_ as actor messages.
GoAkt is highly scalable and available when running in cluster mode. It comes with the necessary features require to
build a distributed actor-based system without sacrificing performance and reliability. With GoAkt, you can instantly create a fast, scalable, distributed system
across a cluster of computers.
If you are not familiar with the actor model, the blog post from Brian Storti [here](https://www.brianstorti.com/the-actor-model/) is an excellent and short introduction to the actor model.
Also, check the reference section at the end of the post for more material regarding the actor model.
## 💻 Installation
```shell
go get github.com/tochemey/goakt/v3
```
## 📚 Documentation
The complete Documentation can be found [here](https://tochemey.gitbook.io/goakt)
## 📝 Examples
Kindly check out the [examples](https://github.com/Tochemey/goakt-examples)' repository.
## 💪 Support
GoAkt is free and open source. If you need priority support on complex topics or request new features, please consider [sponsorship](https://github.com/sponsors/Tochemey).
## 🌍 Community
You can join these groups and chat to discuss and ask GoAkt related questions on:
[](https://github.com/Tochemey/goakt/discussions)
[](https://github.com/Tochemey/goakt/issues)
## 🤝 Contribution
We welcome contributions! Whether you're fixing a bug, adding a new feature, or improving documentation, your help is appreciated.
This project adheres to [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) to standardize commit messages and help automate releases.
We use [Earthly](https://earthly.dev/get-earthly) for reproducible builds.
### Prerequisites
Before you start, make sure you have these installed:
* [Docker](https://docs.docker.com/get-started/get-docker/)
* [Go](https://go.dev/doc/install)
### Getting Started
1. Fork the repository to your GitHub account.
2. Clone your forked repository to your local machine:
```bash
git clone https://github.com/your-username/goakt.git
cd goakt
```
3. Initialize and tidy up Go modules:
```bash
go mod tidy
```
This ensures all dependencies are correctly listed and downloaded.
### Making Contributions
1. Make your changes in your fork.
2. Ensure your code adheres to the project's style and passes tests `earthly +test`.
3. Commit your changes using a **Conventional Commit** message. See [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)
4. Submit a [pull request](https://help.github.com/articles/using-pull-requests) from your fork to the `main` branch of the original repository.
### Test & Linter
Prior to submitting a [pull request](https://help.github.com/articles/using-pull-requests), please run:
```bash
earthly +test
```
## 📦 In Production
This project is used in production by the following projects/companies:
- [Modus](https://docs.hypermode.com/modus/overview) by [Hypermode](https://hypermode.com/)
## 📊 Benchmark
One can find the benchmark tests in this repository: [Benchmark](https://github.com/Tochemey/goakt-examples/tree/main/actor-benchmark)
## 💰 Sponsors