Logistics & Supply Chain

Оркестрація Виконання Замовлень

Автоматизація повного циклу доставки: від "Checkout" до "Дверей клієнта". Синхронізація OMS (Замовлення), WMS (Склад) та TMS (Транспорт) через Event-Driven архітектуру.

15 хв
Швидкість обробки
Saga
Патерн
Kafka
Messaging

01 Виклик (Проблема)

Чому це було складно?

Компанія швидко масштабувалась, і старий "моноліт" не витягував складну логістику. Замовлення губилися між сайтом та складом.

  • Оверселлінг (Race Condition) Клієнти купували останній товар одночасно, бо оновлення залишків займало 5-10 хвилин.
  • "Спагетті" Інтеграції Прямі HTTP виклики між сервісами створювали хаос. Якщо API Кур'єра падало — падав весь Чекаут.

02 Рішення та Артефакти

1. Процес Оркестрації (Sequence)

Order Lifecycle SVG
BPMN Diagram showing Order Flow

Рішення: Ми впровадили Event-Driven підхід. Система Замовлень (OMS) діє як Оркестратор, публікуючи події (`OrderCreated`), які асинхронно слухають Склад (WMS) та Доставка (TMS).

2. Схема Бази Даних (ERD)

ER Diagram for Inventory

Ключове рішення: Розділення сутностей `Product` (Каталог) та `Inventory` (Залишки). Це дозволяє одному товару зберігатися на різних складах з логікою резервування в реальному часі.

3. API Логістики (Фрагмент)

logistics-v1.yaml
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

Стек Технологій

Kafka / RabbitMQ PostgreSQL Elasticsearch Camunda (BPMN)