Перейти к содержанию

CDC replay vs application-level replay

Раздел 04 · Сравнения

Тип материала: инженерное сравнение. Выводы зависят от workload и failure model; схема и сценарии иллюстративные.

Проверка источников: 2026-11-02. Численные latency, throughput, cost и SLA не измерялись.

Критерии выбора

Критерий CDC replay Application-level replay
Workload Восстановление row/change projections Повтор доменных фактов либо commands
Consistency Source log positions, snapshot markers, source order Domain identity, revision и business rule version
Latency / throughput Зависит от WAL retention и snapshot cost Зависит от архива, side effects и replay isolation
Cost / scalability Slots/log retention и source I/O Event archive, historical handlers, separate generations
Operational complexity Connector state, schema history и gaps Commands vs facts, idempotency и external effects

Механизм и ограничения

CDC records описывают изменения хранения; они не обязаны содержать исходное business intent. Application replay может означать rebuild projection из фактов либо повтор command handler — это разные риски. Повторить PaymentPosted в reporting безопаснее, чем повторить команду Pay без внешнего idempotency protocol.

Snapshot event не является новым фактом о дополнительной оплате. При CDC restart сохраняйте connector offsets, slot, snapshot status и schema/decoder state. В application replay сохраняйте original operation/event IDs и обозначайте code/rule version. Raw transport offset не заменяет domain identity.

Иллюстративная схема решения

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

При log gap нельзя обещать восстановление только restart connector: нужна процедура resnapshot/reconciliation. При rebuild в новую generation нельзя использовать старый глобальный inbox так, чтобы он пропустил все нужные события. При command replay требуется отдельно выключить/guard external side effects.

Практическое упражнение

Сравните G: snapshot restart с A: replay. Укажите, какие IDs допустимы для dedup, что означает snapshot read и когда требуется новый source cut.

Связанные материалы и источники

Ordering · CDC snapshot