Оркестрація Виконання Замовлень
Автоматизація повного циклу доставки: від "Checkout" до "Дверей клієнта". Синхронізація OMS (Замовлення), WMS (Склад) та TMS (Транспорт) через Event-Driven архітектуру.
01 Виклик (Проблема)
Чому це було складно?
Компанія швидко масштабувалась, і старий "моноліт" не витягував складну логістику. Замовлення губилися між сайтом та складом.
-
Оверселлінг (Race Condition) Клієнти купували останній товар одночасно, бо оновлення залишків займало 5-10 хвилин.
-
"Спагетті" Інтеграції Прямі HTTP виклики між сервісами створювали хаос. Якщо API Кур'єра падало — падав весь Чекаут.
02 Рішення та Артефакти
1. Процес Оркестрації (Sequence)
Рішення: Ми впровадили Event-Driven підхід. Система Замовлень (OMS) діє як Оркестратор, публікуючи події (`OrderCreated`), які асинхронно слухають Склад (WMS) та Доставка (TMS).
2. Схема Бази Даних (ERD)
Ключове рішення: Розділення сутностей `Product` (Каталог) та `Inventory` (Залишки). Це дозволяє одному товару зберігатися на різних складах з логікою резервування в реальному часі.
3. API Логістики (Фрагмент)
paths: /v1/shipments/{id}/status: post: summary: Update delivery status (Webhook) description: Called by external Courier Service requestBody: content: application/json: schema: type: object required: [status, timestamp] properties: status: type: string enum: [IN_TRANSIT, DELIVERED, FAILED] location: type: object properties: lat: { type: number } lng: { type: number } responses: '200': description: Status Updated & Notification Sent