Инфографика про уровни изоляции транзакций в MySQL и PostgreSQL: Read Uncommitted, Read Committed, Repeatable Read, Serializable, BEGIN, COMMIT, ROLLBACK и аномалии dirty read, phantom read, lost update.

Транзакции обычно вспоминают в момент, когда что-то уже сломалось. На первый взгляд кажется, что проблема в плохом SQL, невнимательности или “ну кто же знал, что два запроса придут…

Иллюстрация к статье про исключения в PHP и Laravel: обработка ошибок, бизнес-логика, архитектурные слои, API-ответы и безопасное логирование.

Исключения в PHP часто воспринимают слишком узко: как способ “поймать ошибку” через try/catch. Из-за этого в проектах появляются две крайности. Первая — исключения почти не используют. Методы возвращают…

Zero Trust архитектура авторизации между микросервисами в Laravel с API Gateway, scopes, mTLS и signed requests

Введение Когда разработчики начинают строить микросервисную архитектуру, вопрос авторизации между сервисами обычно решается в стиле: Проблема в том, что микросервисы очень быстро превращают инфраструктуру в распределённую систему с…

схема публикации real-time событий из Laravel в Centrifugo через Events, listeners и queue jobs

Real-time в Laravel-проекте не должен начинаться с прямого HTTP-запроса к Centrifugo из контроллера. Это быстрый путь к связанному коду, нестабильной архитектуре и ошибкам синхронизации между frontend и backend….

Схема каналов и авторизации в Centrifugo для безопасных real-time подписок в Laravel

В предыдущей статье мы разобрали архитектуру Laravel + Centrifugo: Laravel отвечает за бизнес-логику, права доступа и события, Centrifugo — за WebSocket-соединения, каналы и доставку сообщений, а frontend —…

Если вы хотите писать приложения, которые можно поддерживать в долгосрочной перспективе, вам нужно абстрагироваться от вашего фреймворка, ORM, HTTP-клиента и т. д. потому что ваше приложение переживет их всех….

Паттерн “спецификация” предоставляет возможность описывать требования к бизнес-объектам, и затем использовать их (и их композиции) для фильтрации не дублируя запросы. Что такое спецификация? В Википедии этот паттерн описан так:…