Skip to content

Feature: Support Joining a New Node as Learner (auto-discovering) #89

@JoshuaChi

Description

@JoshuaChi

Summary:

Implement the ability for a new node to join the Raft cluster via a terminal command, with automatic initialization as a learner and subsequent snapshot synchronization from the leader.

Details:

  1. A new node can join the cluster by executing a CLI command.
  2. Upon joining, the node is automatically assigned the role of a Learner.
  3. The leader will detect the new learner and proactively send a snapshot to synchronize its state.
  4. Once the snapshot is successfully installed, the learner will perform a readiness check (e.g., comparing log and snapshot metadata with the leader).
  5. If the learner determines it is fully up-to-date and consistent, it will request or trigger a promotion to Follower status.

Acceptance Criteria:

  • CLI supports adding a new node to the cluster.
  • New nodes join as Learner by default.
  • Leader sends a snapshot automatically after detecting the new learner.
  • Learner installs snapshot and confirms installation success.
  • Learner confirms its readiness and can transition to Follower upon agreement with Leader.

Metadata

Metadata

Assignees

No one assigned

    Labels

    component:raft-snapshotSnapshot creation, transfer, installation, and compaction triggers.raft-clusterCluster-wide operations and coordination issues

    Projects

    Status

    Done

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions