Hybrid Consistency: Strong Local + Eventual Global Reads
How to keep your multi‑region app fast locally while still offering a globally consistent view when needed.
⚡ Combine local strong writes with global eventual reads and a lightweight read‑your‑writes token to keep latency low and correctness high.
🎯 System Scenario & Requirements
System Goal
⚡ Combine local strong writes with global eventual reads and a lightweight read‑your‑writes token to keep latency low and correctness high.
Actors & Components
- Client
- Local Region
- Global Replication
- Global Read Service
- Client App
- Local Write Service
Functional Requirements
- ⚡ Combine local strong writes with global eventual reads and a lightweight read‑your‑writes token to keep latency low and correctness high.
- This hybrid model lets you serve users fast while still enabling cross‑region consistency when you really need it.
- You’ve just deployed a SaaS app with replicas in North America, Europe, and Asia.
Constraints & Assumptions
- Operational latency, consistency levels, and network partition boundaries must be enforced.
⚡ Execution Stages & Decision Trace
Stage 1 — Hybrid Consistency Pattern
Local Strong Writes – All writes go to the nearest region with a local quorum (e.g., 2‑of‑3).
Global Eventual Replication – A background sync service propagates changes to all other regions asynchronously.
Deep Dive
Deep Dive: Stage 1 — Hybrid Consistency Pattern
- Local Strong Writes – All writes go to the nearest region with a local quorum (e.g., 2‑of‑3).
- Global Eventual Replication – A background sync service propagates changes to all other regions asynchronously.
- Session Token / Read‑Your‑Writes (RYW) Header – The client includes a lightweight token that records the timestamp of its last write.
- Global Read Service – When a read comes in from a different region, the service checks the RYW token.
- If the token is recent enough (within a configured window), the service serves the local replica (strong guarantee).
- If not, it falls back to the global eventual replica, accepting a small staleness trade‑off.
This pattern gives you:
- Low latency for the majority of users (strong local reads).
- Predictable consistency for critical cross‑region queries (RYW fallback).
- Simple failure handling – the global sync can retry without affecting local operations.
Observable outcome: Predictable consistency for critical cross‑region queries (RYW fallback).
Deep Dive: Stage 2 — Diagram
Observable outcome: You can explain how “Diagram” changes the architecture or implementation path.
Deep Dive: Stage 3 — When to Use
- Highly interactive UIs that need instant feedback.
- Admin dashboards that must see a consistent view but can tolerate a small staleness window.
- Geo‑distributed services where write latency dominates user experience.
By adopting this hybrid approach, you keep the best of both worlds: fast, locally strong operations and a globally coherent view when it truly matters.
Observable outcome: By adopting this hybrid approach, you keep the best of both worlds: fast, locally strong operations and a globally coherent view when it truly matters.
📊 System Outcome & Trade-offs
Observed User & Operator Behavior
User: Clients observe deterministic state without lost updates or race conditions.
Operator: Operators can verify stage outcomes against the scenario requirements.
Key Architectural Trade-offs
- System guarantees are traded against replication overhead and failover convergence times.
Key learnings
- Local Strong Writes – All writes go to the nearest region with a local quorum (e.g., 2‑of‑3).
- Apply consistency-replication to Diagram.
- Highly interactive UIs that need instant feedback.
Apply Concepts from this Scenario
Test your understanding of the architecture decisions and trade-offs presented in this case study.
