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

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

Loading

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

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

Loading

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

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

Loading

20 типовых ошибок Java-разработчиков в пул реквестах

Оглавление Введение Code review (ревью кода) – ключевой этап в корпоративной разработке, позволяющий повысить качество программного обеспечения. Опытные инженеры при проверке pull request’ов обращают внимание на типичные ошибки, которые повторяются из проекта в проект. Эти системные проблемы затрагивают разные аспекты: от архитектуры и читабельности кода до производительности, устойчивости и безопасности приложения. Игнорирование этих аспектов приводит … —Читать далее—

Loading

Dead Letter Queue / Dead Letter Topic в распределенных системах

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

Loading