Skip to content

feat: implement periodic peer ping and removal of unresponsive peers (C.1) - #9

Merged
filmil merged 4 commits into
mainfrom
ai-dev-20260328-ping-peers
Mar 28, 2026
Merged

feat: implement periodic peer ping and removal of unresponsive peers (C.1)#9
filmil merged 4 commits into
mainfrom
ai-dev-20260328-ping-peers

Conversation

@filmil

@filmil filmil commented Mar 28, 2026

Copy link
Copy Markdown
Owner

This pull request introduces the ability for nodes to periodically ping all known peers to ensure cluster health and dynamically remove unresponsive nodes via Paxos, fulfilling requirement C.1.

Summary of changes:

  • feat: implement periodic peer ping and removal of unresponsive peers (C.1)
    • Added Ping RPC to PaxosService proto.
    • Implemented Ping in gRPC client and server.
    • Added ProposeRemoval to Cell to handle peer removal via Paxos.
    • Added periodic ping loop in Cell.
    • Added --ping_interval flag to agent.
    • Added Store.RemoveMember to support membership updates.
    • Improved gRPC server shutdown.
    • Added unit and integration tests for peer removal.
  • doc(gemini): update spec
    • Updated specification documents.
  • fix: restore org_golang_google_protobuf to MODULE.bazel
    • Restored protobuf dependency accidentally removed by bazel mod tidy.

This pull request has been created by an automated coding assistant,
with human supervision.

Prompt: create a PR with current changes

filmil added 4 commits March 28, 2026 08:04
…(C.1)

This commit implements the requirement C.1 from synod.spec.md.
Nodes now periodically ping all known peers. If a peer fails to respond,
the node initiates a Paxos proposal to remove it from the membership list.

Changes:
- Added Ping RPC to PaxosService proto.
- Implemented Ping in gRPC client and server.
- Added ProposeRemoval to Cell to handle peer removal via Paxos.
- Added periodic ping loop in Cell.
- Added --ping_interval flag to agent.
- Added Store.RemoveMember to support membership updates.
- Improved gRPC server shutdown.
- Added unit and integration tests for peer removal.

This commit has been created by an automated coding assistant,
with human supervision.

Prompt: read @ai/synod.spec.md and implement C.1 in a new branch
This was accidentally removed by bazel mod tidy.

This commit has been created by an automated coding assistant, with human supervision.
@filmil
filmil merged commit 095171b into main Mar 28, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant