Consensus
Functions
Public API reference for the Consensus extension
| Function | Description |
|---|
NewExtension(opts ...ConfigOption) forge.Extension | Create the consensus extension with functional options |
NewExtensionWithConfig(config Config) forge.Extension | Create with a complete config |
DefaultConfig() Config | Returns the default configuration |
| Method | Description |
|---|
Service() ConsensusService | Access the consensus service |
IsLeader() bool | Check if this node is the current leader |
GetLeader() (string, error) | Get the current leader's node ID |
GetRole() string | Get the current role (leader, follower, candidate) |
GetStats() map[string]any | Get consensus statistics |
GetClusterInfo() map[string]any | Get cluster membership info |
| Method | Description |
|---|
Apply(ctx, cmd) (any, error) | Apply a command through the Raft log (write operation) |
Read(ctx, query) (any, error) | Read from the state machine (consistent read) |
| Method | Description |
|---|
Start(ctx) error | Start the Raft node |
Stop(ctx) error | Stop the Raft node |
HealthCheck(ctx) error | Check node and cluster health |
| Method | Description |
|---|
IsLeader() bool | Check if this node is the leader |
GetLeader() (string, error) | Get the leader node ID |
GetRole() string | Get the current role |
| Method | Description |
|---|
GetStats() map[string]any | Runtime statistics |
GetClusterInfo() map[string]any | Cluster membership information |
UpdateConfig(config) error | Update configuration at runtime |
| Method | Description |
|---|
NewLeadershipChecker(service ConsensusService) | Create a leadership checker |
RequireLeader() bool | Returns true if current node is leader |
RequireQuorum() bool | Returns true if cluster has quorum |
| Function | Description |
|---|
NewNotLeaderError(leaderID) error | Create a not-leader error with leader hint |
NewNoLeaderError() error | Create a no-leader error |
NewTimeoutError(operation) error | Create a timeout error |
NewNoQuorumError(available, required) error | Create a quorum error |
IsNotLeaderError(err) bool | Check if error is not-leader |
IsNoLeaderError(err) bool | Check if no leader elected |
IsNoQuorumError(err) bool | Check if quorum lost |
IsRetryable(err) bool | Check if error is transient |
IsFatal(err) bool | Check if error is unrecoverable |
How is this guide?