Distributed Go 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 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.
go get github.com/tochemey/goakt/v3
The complete Documentation can be found here
Kindly check out the examples' repository.
GoAkt is free and open source. If you need priority support on complex topics or request new features, please consider sponsorship.
You can join these groups and chat to discuss and ask GoAkt related questions on:
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 to standardize commit messages and help automate releases. We use Earthly for reproducible builds.
Before you start, make sure you have these installed:
- Fork the repository to your GitHub account.
- Clone your forked repository to your local machine:
git clone https://github.com/your-username/goakt.git cd goakt
- Initialize and tidy up Go modules:
This ensures all dependencies are correctly listed and downloaded.
go mod tidy
- Create a new branch.
- Make your changes.
- Ensure your code adheres to the project's style and passes tests
earthly +test
. - Commit your changes using a Conventional Commit message (e.g.,
feat: add new awesome feature
orfix: resolve a critical bug
). - Push your branch to your forked repository.
- Submit a pull request from your branch to the
main
branch of the original repository.
Prior to submitting a pull request, please run:
earthly +test
One can run the benchmark test from the bench package:
make bench
to run the benchmarkmake bench-stats
to see the benchmark stats