Consistency levels и LWT в ScyllaDB: что реально стоит кворум и Paxos
Разница между ONE/QUORUM/ALL на живых числах, во сколько раз LWT дороже обычной записи и что происходит с CAS-операциями под конкуренцией
Разница между ONE/QUORUM/ALL на живых числах, во сколько раз LWT дороже обычной записи и что происходит с CAS-операциями под конкуренцией
Как Kafka даёт exactly-once: идемпотентный producer, транзакции с transactional.id, атомарный consume-process-produce через sendOffsetsToTransaction и consumer read_committed — и где граница EOS (внешние сайд-эффекты), которую закрывает outbox
Финал серии: единый сценарий (списание с инвариантом «баланс не в минус») реализован поверх PostgreSQL, Redis, MongoDB и ScyllaDB и прогнан одним нагрузчиком. Что каждая система гарантирует из коробки, что ломается под конкуренцией, цена корректности — и итоговая карта выбора
Что значит «транзакция» в брокере: AMQP-транзакции RabbitMQ против publisher confirms, транзакционный producer и exactly-once в Kafka, consume-process-produce и read_committed, границы EOS и outbox-паттерн как мост к БД. Примеры на Go и Java
Что означает «транзакция» там, где нет классического ACID-движка: Redis MULTI/EXEC без rollback и WATCH-CAS, multi-document транзакции MongoDB поверх snapshot, LWT на Paxos в ScyllaDB и почему BATCH — это не транзакция. Примеры на Go и Java
PostgreSQL как эталон управляемой изоляции: уровни в деле, SELECT FOR UPDATE, SERIALIZABLE с retry на 40001, advisory locks. Примеры на Go (pgx) и Java (JDBC) плюс нагрузочный стенд, воспроизводящий lost update и write skew под конкуренцией
С чего начинается транзакционность: ACID и BASE, каталог аномалий (dirty read, lost update, phantom, write skew), ANSI-уровни изоляции и их критика, блокировки против MVCC, snapshot isolation и почему это ещё не serializable
Как паттерн Saga решает проблему распределённых транзакций, чем оркестрация отличается от хореографии и когда saga создаёт больше проблем, чем решает