Strong vs eventual consistency¶
Тип материала: инженерное сравнение. Выводы зависят от workload и failure model; схема и сценарии иллюстративные.
Проверка источников: 2026-11-02. Численные latency, throughput, cost и SLA не измерялись.
Критерии выбора¶
| Критерий | Strong consistency в заданной области | Eventual convergence |
|---|---|---|
| Workload | Authorization и проверка текущего invariant | Кеши, analytics и rebuildable projections |
| Consistency | Нужно назвать модель: linearizable register либо serializable DB | Сходимость при заданных правилах конфликтов и доставке |
| Latency / throughput | Coordination и quorum/lock overhead | Местные reads/writes; последующая координация |
| Cost / scalability | Quorum, consensus, hot-row contention | Versions, anti-entropy/replay и stale read handling |
| Operational complexity | Partitions и ограничения availability | Freshness, conflict rules, completeness и reconciliation |
Механизм и ограничения¶
«Strong» без определения недостаточно: serializable transactions не тождественны linearizable операциям во всех системах; read-your-writes — более узкая session guarantee. Eventual consistency требует механизма сходимости и условий liveness, а не обещания «когда-нибудь исправится».
Выбирайте authoritative transaction для available funds и eventual projection для dashboard. Нельзя проводить debit по устаревшему Redis balance, если решение не проверяется ledger. В Cassandra выбор quorum сам по себе не делает произвольный multi-row invariant serializable; конкретные модели рассматривались в разделе 02.
Иллюстративная схема решения¶
flowchart TD
W[Workload and invariant] --> B[Define durable boundary]
B --> F[Compare failure and recovery obligations]
F --> L[Choose protocol for explicit scope]
L --> T[Fault test and reconciliation]
Failure и recovery¶
При network partition strong authority может отвергать requests ради safety. Eventual replicas могут принять несовместимые updates, которые нельзя честно объединить в финансовом domain. После восстановления требуются version conflict resolution и сверка, а не только возобновление replication.
Практическое упражнение¶
Для wallet authorization, betting odds display и дневной аналитики задайте допустимость stale reads, conflict policy и условие publication. Не используйте слово strong как единственный критерий.
Связанные материалы и источники¶
Transaction boundaries · Replication models
- etcd API guarantees — 3.5.
- PostgreSQL isolation — 17.