Пользовательские сценарии
Payments Service
1. Создание счёта
- Запрос:
POST /accounts
- Ограничение: разрешено не более одного счёта на пользователя (проверка по email).
- Ответ: данные созданного счёта.
2. Пополнение счёта
- Запрос:
POST /accounts/{id}/deposit
- Тело: сумма пополнения.
- Гарантии: атомарное обновление баланса, даже при параллельных запросах.
- Ответ: обновлённый счёт с актуальным балансом.
3. Просмотр баланса
- Запрос:
GET /accounts/{id}
- Ответ: данные счёта, включая текущий баланс.
Orders Service
1. Создание заказа
- Запрос:
POST /orders
- Тело:
userId, totalAmount.
- Поведение:
- Заказ создаётся мгновенно в статусе
NEW.
- Асинхронно публикуется событие
OrderCreated в Kafka.
- Payments Service запускает процесс оплаты.
- Ответ: заказ в статусе
NEW (оплата обрабатывается асинхронно).
2. Просмотр списка заказов
- Запрос:
GET /orders?userId={id}
- Ответ: список всех заказов пользователя.
3. Просмотр статуса заказа
- Запрос:
GET /orders/{id}
- Ответ: полная информация о заказе, включая текущий статус (
NEW, FINISHED, CANCELLED).
Все сценарии, кроме создания заказа, являются синхронными.