photoncloud-monorepo/flaredb/specs/003-kvs-consistency/contracts/kv_raw.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

815 B

KvRaw contracts (eventual consistency)

RawPut

  • RPC: kvrpc.KvRaw/RawPut
  • Request:
    • namespace: string (empty => default)
    • key: bytes
    • value: bytes
  • Response:
    • success: bool
  • Semantics:
    • Allowed only for namespaces in eventual mode; returns FailedPrecondition otherwise.
    • Writes locally with LWW timestamp prefix and queues best-effort async replication via Raft when a leader is present.

RawGet

  • RPC: kvrpc.KvRaw/RawGet
  • Request:
    • namespace: string (empty => default)
    • key: bytes
  • Response:
    • found: bool
    • value: bytes (empty if not found)
  • Semantics:
    • Allowed only for eventual namespaces; returns FailedPrecondition otherwise.
    • Returns value decoded from LWW-encoded payload (drops the timestamp).