CQRS в распределенных системах

Оглавление Введение Command-Query Responsibility Segregation (CQRS) – это архитектурный паттерн, предлагающий раздельное ведение операций модификации данных (команд) и операций чтения данных (запросов). Идея возникла из принципа Command-Query Separation (CQS) Бертрана Мейера, где каждый метод либо команда (изменяет состояние), либо запрос (возвращает данные), но не совмещает и то и другое. CQRS развивает эту идею на уровне … —Читать далее—

Loading

Retry storm в распределенных системах

Оглавление Введение Представьте себе: ночью происходит сбой внешнего API, и десятки микросервисов в вашем приложении дружно начинают многократно повторять неудачные запросы. Вместо быстрого восстановления система испытывает еще большую нагрузку – как будто сама себя атакует непрекращающимися повторными вызовами. Такое явление получило название “лавина ретраев” (retry storm) – ситуация, когда множество компонентов одновременно пытаются повторить сбойные … —Читать далее—

Loading

Hedged Requests в распределенных системах

Оглавление Введение В современных распределенных системах производительность и скорость отклика становятся критически важными факторами, напрямую влияющими на качество пользовательского опыта и успех бизнеса в целом. Даже незначительные всплески задержек, особенно в высоконагруженных системах, могут привести к ощутимому ухудшению производительности, снижению пользовательской удовлетворенности и, как следствие, финансовым потерям. Часто такие задержки возникают из-за того, что отдельные … —Читать далее—

Loading

Паттерн Transaction Log Tailing

Оглавление Введение Современные системы, построенные по микросервисной или распределенной архитектуре, сталкиваются с вызовами поддержания согласованности данных при масштабировании и интеграции компонентов. Один из наиболее эффективных подходов решения таких задач — паттерн Transaction Log Tailing, также известный как подход к захвату изменений данных (Change Data Capture, CDC). Transaction Log Tailing основывается на непрерывном отслеживании и обработке … —Читать далее—

Loading

Transactional Outbox Pattern – надёжная передача событий между сервисами

Оглавление Введение В современном мире микросервисов часто возникает задача обеспечить согласованность данных между несколькими сервисами без использования тяжелых распределенных транзакций. Например, сервис обработки заказов должен сохранить информацию о новом заказе в своей базе данных и отправить событие о создании заказа в брокер сообщений, чтобы другие сервисы (склад, доставка и т.д.) могли отреагировать. Наивная реализация — … —Читать далее—

Loading