Skip to content

ADR-0023 — Edge read replicas in the browser (Proposed)#6

Merged
naveed949 merged 1 commit into
mainfrom
claude/adr-edge-read-replicas
Jun 22, 2026
Merged

ADR-0023 — Edge read replicas in the browser (Proposed)#6
naveed949 merged 1 commit into
mainfrom
claude/adr-edge-read-replicas

Conversation

@naveed949

Copy link
Copy Markdown
Owner

Summary

Adds ADR-0023 — Edge read replicas in the browser (Status: Proposed, design only — no code). Captures the decision shape and trade-offs for running a read-only, non-voting learner replica inside the client, serving reads from a local in-browser StateMachine with no network round-trip.

What it records

  • Shape: bootstrap from a chunked snapshot → tail the committed log over a pull-based stream → apply to a local deterministic StateMachine → serve reads locally. Strictly read-only/non-voting; writes still go through the leader. Read-your-writes via a session read-index token; optional client-side audit-chain verification.
  • Pros: local read latency, reactive UI (built-in change-feed), read scaling at zero consensus cost, offline reads, and end-to-end tamper-evidence via the audit hash-chain.
  • Cons: eventual consistency / read-your-writes handling, mandatory partial replication (the state machine is whole-state today), the authorization-vs-determinism tension (uniform log enables convergence + verification but can't ship other tenants' data), determinism now spanning client builds (ADR-0003), and cold-start snapshot cost.
  • Dependency order: non-voting learner role → pull/streaming transport → scoped partial replication + per-client authz → thin browser SDK.
  • Alternatives: follower-read offloading only (ADR-0014/M17), plain client cache, adopting an existing local-first sync engine, or doing nothing.

Indexed in docs/adr/README.md. Builds on the deterministic StateMachine seam (ADR-0017), the log/audit chain (ADR-0009/0011), and follower reads (ADR-0014).

🤖 Generated with Claude Code


Generated by Claude Code

Record, as a proposed not-yet-built capability, a read-only non-voting learner
replica pushed to the client (browser): bootstrap from a chunked snapshot, tail
the committed log over a pull-based stream, apply commands to a local instance of
the deterministic StateMachine, and serve reads locally (eventually consistent;
read-your-writes via a session read-index; optional audit-chain verification).

Captures the shape, the pros (local read latency, reactive UI, read scaling at
zero consensus cost, offline reads, end-to-end tamper-evidence), the cons
(eventual consistency, mandatory partial replication, the authz-vs-determinism
tension, determinism across client builds, cold-start cost), and the dependency
order (non-voting learner role → pull/streaming transport → scoped partial
replication + per-client authz). Indexed in docs/adr/README.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01NneoGGKxBp5ZExL7D7i1Lu
@naveed949
naveed949 merged commit 34bfd7e into main Jun 22, 2026
1 check passed
@naveed949
naveed949 deleted the claude/adr-edge-read-replicas branch June 23, 2026 05:54
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.

2 participants