Skip to content

Tochemey/goakt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GoAkt

build Go Reference GitHub Release GitHub Tag Go Report Card codecov GitHub go.mod Go version GitHub Created At

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.

πŸ’» Installation

go get github.com/tochemey/goakt/v3

πŸ“š Documentation

The complete Documentation can be found here

πŸ“ Examples

Kindly check out the examples' repository.

πŸ’ͺ Support

GoAkt is free and open source. If you need priority support on complex topics or request new features, please consider sponsorship.

🌍 Community

You can join these groups and chat to discuss and ask GoAkt related questions on:

GitHub Discussions GitHub Issues or Pull Requests

🀝 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 to standardize commit messages and help automate releases. We use Earthly for reproducible builds.

Prerequisites

Before you start, make sure you have these installed:

Getting Started

  1. Fork the repository to your GitHub account.
  2. Clone your forked repository to your local machine:
    git clone https://github.com/your-username/goakt.git
    cd goakt
  3. Initialize and tidy up Go modules:
    go mod tidy
    This ensures all dependencies are correctly listed and downloaded.

Making Contributions

  1. Create a new branch.
  2. Make your changes.
  3. Ensure your code adheres to the project's style and passes tests earthly +test.
  4. Commit your changes using a Conventional Commit message (e.g., feat: add new awesome feature or fix: resolve a critical bug).
  5. Push your branch to your forked repository.
  6. Submit a pull request from your branch to the main branch of the original repository.

Test & Linter

Prior to submitting a pull request, please run:

earthly +test

πŸ“Š Benchmark

One can run the benchmark test from the bench package:

  • make bench to run the benchmark
  • make bench-stats to see the benchmark stats

πŸ’° Sponsors