Разбор задачи с реального собеседования: e-commerce, брокер и резервы склада

Условия задачи
Сценарий:
У нас есть e-commerce платформа, состоящая из:
• веб-приложения,
• брокера сообщений,
• бэкенда.
Клиенты могут заказывать товары, а складская система проверяет наличие товаров на складе.
Каждый раз, когда клиент делает заказ, система отправляет запрос через брокер для проверки доступности товара на складе и блокирует его на время обработки заказа.
Проблема:
Клиенты могут:
• добавлять несколько товаров в корзину одновременно,
• отправлять несколько заказов.
Это приводит к тому, что резервируется больше товара, чем есть на складе.
Из-за этого возможны ситуации, когда товар отображается как доступный, но при попытке завершить заказ оказывается, что он уже заблокирован другим клиентом.
Необходимо:
• Выявить процессы, которые происходят,
• На основе этих процессов отобразить схему (sequence diagram) взаимодействия,
• Предложить 2 способа оптимизации, чтобы избавиться от текущих проблем.
Переходим к решению ⬇️