advanced

Write-behind

Buffer writes through cache or queue only when durability, ordering, replay, and loss handling are designed. Всегда проговаривайте freshness и invalidation.

Write-behind (write-back) подтверждает запись в кеш сразу и асинхронно сбрасывает в БД пакетами. Снижает write latency и сглаживает всплески, но риск потери при падении кеша до flush без WAL или репликации.

Нужны гарантии порядка, replay после сбоя и backpressure, когда БД не успевает. Подходит для счётчиков просмотров или сессий с допустимой потерей — опасно для денег без тщательного дизайна.

На интервью: write-behind для счётчика просмотров, окно потери при crash и меры durability.

Типовые ошибки: неограниченный буфер записи; lag flush и большой recovery replay; write-behind для движения денег.

Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.

Чеклист:

  • Допустимое окно потери.
  • WAL до ack при нужной durability.
  • Batch и rate-limit flush в БД.
  • Мониторинг lag flush и глубины буфера.