Сообщения проходят через рабочую очередь, очереди повторов и очередь для ручного разбора

Надёжная асинхронная коммуникация: повторы, дубликаты и dead letter queues

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

июля 23, 2026 · 28 минут · German Gorelkin
Поток сообщений между Go-сервисами через RabbitMQ

RabbitMQ и Go

Разбираемся, как RabbitMQ маршрутизирует сообщения, какие гарантии даёт клиент amqp091-go и когда высокоуровневый пакет pubsub упрощает код Go-сервиса....

июля 21, 2026 · 18 минут · German Gorelkin
Consistent hashing

Consistent hashing

Кластеры редко бывают статичными: узлы добавляются для масштабирования и выбывают из-за сбоев. В таких условиях обычное распределение нагрузки становится неэффективным. На помощь приходит Consistent Hashing - алгоритм, который гарантирует минимальное перемещение ключей при любых изменениях в составе системы...

января 8, 2026 · 8 минут · German Gorelkin
CAP теорема

CAP теорема

Обзор CAP-теоремы и PACELC: история, доказательство и практическое применение. Разбираем, как распределенные системы балансируют между согласованностью, доступностью и скоростью ответа....

января 4, 2026 · 12 минут · German Gorelkin
Архитектура и реализация паттерна Try-Confirm-Cancel в распределенных системах

Try-Confirm-Cancel в распределенных системах

Try-Confirm-Cancel как модель управления согласованностью в микросервисах: резервирование ресурсов, идемпотентность, отказоустойчивость и архитектурные trade-offs....

января 2, 2026 · 12 минут · German Gorelkin
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
Распределенные данные. Слабые уровни изоляции

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

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

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

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

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

декабря 15, 2023 · 9 минут · German Gorelkin