🎭
GoAkt
GithubReference
  • 👋Introduction
  • 🏛️Design Principles
  • 🔢Versioning
  • 💡Use Cases
  • 🚀Get Started
  • 📦Binaries and Go versions
  • features
    • Actor System
    • Actor
    • Mailbox
    • Messaging
    • PipeTo
    • Passivation
    • Supervision
    • Behaviors
    • Remoting and APIs
    • TLS
    • Scheduler
    • Stashing
    • Routers
    • Events Stream
    • Coordinated Shutdown
    • Persistence
    • Observability
    • Testkit
    • Cluster
    • Service Discovery
    • Cluster Singleton
    • Cluster Client
  • Cluster PubSub
  • Extensions
  • Dependencies
  • Meta Framework
    • eGo
Powered by GitBook
On this page
  • Overview
  • Operations Guide
  • Actors Relocation
  • Note
  • Service Discovery
  • Client
  1. features

Cluster

PreviousTestkitNextService Discovery

Last updated 1 month ago

Overview

The cluster engine depends upon the mechanism to find other nodes in the cluster. Under the hood, it leverages to scale out and guarantee performant, reliable persistence, simple scalability, partitioning (sharding), and re-balancing out-of-the-box. It requires remoting to be enabled. One can implement a custom hasher for the partitioning using the interface and the Actor System to set it. The default hasher uses the XXH3 algorithm.

At the moment the following providers are implemented:

  • is fully functional

  • and

  • is fully functional

  • is fully functional

  • is fully functional and for demo purpose

Note: One can add additional discovery providers using the following .

Operations Guide

The following outlines the cluster mode operations which can help have a healthy GoAkt cluster:

  • One can start a single node cluster or a multiple nodes cluster.

  • One can add more nodes to the cluster which will automatically discover the cluster.

  • One can remove nodes. However, to avoid losing data, one need to scale down the cluster to the minimum number of nodes which started the cluster.

Actors Relocation

When a node leaves the cluster, as long as the cluster quorum is stable, its actors are redeployed on the remaining nodes of the cluster. The redeployed actors are created with their initial state. Every field of the Actor set using the PreStart will have their value set as expected. On the contrary every field of the Actor will be set to their default go type value because actors are created using reflection.

Note

Service Discovery

Client

The GoAkt client facilitates interaction with a specified GoAkt cluster, contingent upon the activation of cluster mode. See Client

One can decide not to recreate/relocate actors when their host node shuts down unexpectedly by using the

One can also disable relocation for a given actor system by using the Option option when creating the actor system.

GoAkt ships with a API that can help any developer to extend GoAkt cluster capability. See Service Discovery

discovery
Olric
Hasher
option
kubernetes
api integration
mDNS
DNS-SD
NATS
integration
DNS
Static
discovery provider
SpawnOption
WithRelocationDisabled()
WithoutRelocation
discovery provider