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

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

Loading

15 критических ошибок при работе с микросервисами

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

Loading

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

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

Loading

Что каждый разработчик должен знать об информационной безопасности

Оглавление Введение Каждый день появляются новости об утечках данных, взломах и кибератаках – от кражи миллионов пользовательских записей до заражения систем вымогательскими вирусами. В современном мире, где бизнес и государство все больше зависят от программного обеспечения, обеспечение информационной безопасности (ИБ) стало неотъемлемой частью разработки. Почему это важно для разработчика? Потому что уязвимость в вашем коде … —Читать далее—

Loading

Что каждый разработчик должен знать об аннотации @Transactional

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

Loading