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

33 lines
925 B
Markdown

# 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.