Event Sourcing - події як джерело істини
Зберігає не поточний стан, а послідовність подій, що його змінювали. Повний аудит і відтворюваність - ціною складнішої інфраструктури.
Почніть вводити, щоб шукати по статтях, вакансіях, компаніях, проєктах, ресурсах, пакетах, подіях і користувачах.
Unit of Work групує кілька змін у єдину транзакцію, щоб вони застосувалися разом або не застосувалися зовсім.
Складна операція часто змінює кілька записів (списання, резерв, лог). Якщо частина збережеться, а на наступному кроці станеться помилка, дані лишаться у неузгодженому стані.
Усі зміни об'єднуються в одну транзакцію: при успіху - commit, при винятку - rollback усього разом. У Laravel цю роль виконує DB::transaction(): зміни всередині замикання застосовуються атомарно.
DB::transaction(function () use ($order, $items) {
$order->status = 'paid';
$order->save();
foreach ($items as $item) {
$item->status = 'reserved';
$item->save();
}
PaymentLog::create([
'order_id' => $order->id,
'amount' => $order->total,
]);
});
DB::transaction() автоматично робить commit при успіху і rollback при винятку, а ще вміє повторювати транзакцію при deadlock (другий аргумент - кількість спроб).
save().31 / 31
Зберігає не поточний стан, а послідовність подій, що його змінювали. Повний аудит і відтворюваність - ціною складнішої інфраструктури.
Розділяє операції зміни стану (команди) та читання (запити) на окремі моделі. Коли це виправдано у великих доменах і чому надмірне для CRUD.
Fullstack розробник для розробки та підтримки вебпроєктів на PHP/Laravel та Vue.js. Потрібні 3+ роки комерційного досвіду на PHP 8+, Laravel, Vue 3, MySQL, REST API, ООП/SOLID. Один з кандидатів матиме можливість взяти на себе функції Tech Lead з технічної координації команди, аудиту проєктів і стандартизації процесів розробки.
Back-end розробник на PHP 8+ з Laravel для роботи над цікавим проектом. Потрібен досвід 4+ років комерційної роботи з PHP, 2+ років з Laravel, знання Docker, NoSQL, RESTful API, мікросервісної архітектури, MySQL/PostgreSQL та оптимізації продуктивності. Люде матиме змогу не лише виконувати таски, а й реалізувати ідеї для покращення продукту.
Junior Backend Developer на Laravel для розробки серверної частини внутрішніх і зовнішніх систем. Потрібен досвід з PHP, Docker, REST API та знання математики/геометрії. Основні обов'язки: розробка, оптимізація продуктивності, співпраця з командою розробників та аналітиків, проєктування архітектури застосунків.
Bagisto — це платформа для електронної комерції, побудована на Laravel. Вона надає готове рішення для створення та управління інтернет-магазинами з підтримкою каталогу товарів, замовлень, платежів та клієнтів.