photoncloud-monorepo/flaredb/specs/003-kvs-consistency/contracts/raft_service.md
centra 8f94aee1fa Fix R8: Convert submodule gitlinks to regular directories
- Remove gitlinks (160000 mode) for chainfire, flaredb, iam
- Add workspace contents as regular tracked files
- Update flake.nix to use simple paths instead of builtins.fetchGit

This resolves the nix build failure where submodule directories
appeared empty in the nix store.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 16:51:20 +09:00

925 B

RaftService contracts (namespace mode ops)

GetMode

  • RPC: RaftService/GetMode
  • Request: namespace: string (empty => default)
  • Response: mode: string ("strong" or "eventual")

UpdateNamespaceMode

  • RPC: RaftService/UpdateNamespaceMode
  • Request:
    • namespace: string (required)
    • mode: string ("strong" or "eventual", required)
  • Response: mode object
    • namespace: string
    • id: uint32
    • mode: string
    • from_default: bool (true if created implicitly)

ListNamespaceModes

  • RPC: RaftService/ListNamespaceModes
  • Request: empty
  • Response: namespaces[]
    • namespace: string
    • id: uint32
    • mode: string
    • from_default: bool

Error cases

  • InvalidArgument when mode is not "strong" or "eventual" or namespace is empty for updates.
  • FailedPrecondition if Raft messages are addressed to a different peer.