SAGA. Распределенные транзакции

SAGA. Распределенные транзакции

Как работают распределённые транзакции в микросервисах: Saga, компенсации вместо rollback, конечная согласованность и архитектурные компромиссы....

декабря 30, 2025 · 11 минут · German Gorelkin
Two-Phased Commit и eXtended Architecture

Two-Phased Commit и eXtended Architecture

Распределённые транзакции через 2PC и XA: как обеспечить атомарность в микросервисах. Риски in-doubt транзакций, блокировки и специфика работы с PostgreSQL....

декабря 27, 2025 · 4 минуты · German Gorelkin
Transactional Outbox: Как не потерять сообщения

Transactional Outbox. Как не потерять сообщения

Transactional Outbox — паттерн для надёжной доставки событий в микросервисах. Как избежать dual write, потерь сообщений и дубликатов, обеспечить at-least-once и идемпотентность....

декабря 26, 2025 · 4 минуты · German Gorelkin
Вопросов для собеседования. Базы Данных. Часть 1

Вопросов для собеседования. Базы Данных. Часть 1

Вопросы по SQL и базам данных для собеседования. Некоторые из них касаются только Microsoft SQL Server, но большинство вопросов являются общими для всех реляционных СУБД....

мая 26, 2025 · 16 минут · German Gorelkin
Глубокое погружение в German Strings

Глубокое погружение в German Strings

Мы хотим углубиться в тонкости реализации German Strings и рассказать о том, почему оптимизации, описанные в нашем предыдущем посте, необходимы для высокопроизводительной обработки строк....

сентября 4, 2024 · 6 минут · German Gorelkin
German Strings

German Strings

Строки концептуально очень просты: По сути, это обычная последовательность символов, верно? Почему же тогда каждый язык программирования имеет свою собственную, немного отличающуюся реализацию строк? Оказывается, строка - это нечто большее, чем «просто последовательность символов»....

сентября 3, 2024 · 8 минут · German Gorelkin
Распределенные данные. Слабые уровни изоляции

Распределенные данные. Слабые уровни изоляции

Транзакции, не затрагивающие одних и тех же данных, могут спокойно выполняться конкурентно, поскольку друг от друга не зависят. Проблемы конкурентного доступа (состояния гонки) возникают, только если одна транзакция читает данные, модифицируемые в этот момент другой, или две транзакции пытаются одновременно модифицировать одни и те же данные...

декабря 19, 2023 · 16 минут · German Gorelkin
Распределенные данные. Транзакции

Распределенные данные. Транзакции

Транзакция — способ группировки приложением нескольких операций записи и чтения в одну логическую единицу....

декабря 15, 2023 · 9 минут · German Gorelkin
Распределенные данные. Секционирование

Распределенные данные. Секционирование

В случае очень больших наборов данных необходимо разбить данные на секции (partitions), иначе говоря, выполнить шардинг (sharding) данных....

октября 19, 2023 · 15 минут · German Gorelkin
Основы Распределенных Систем. Часть 1

Основы Распределенных Систем. Часть 1

Распределенная система состоит из множества компонентов, возможно, находящихся на разных географических границах, которые взаимодействуют и координируют свои действия посредством передачи сообщений....

октября 7, 2023 · 4 минуты · German Gorelkin