@startuml scale 1300x1300 mainframe TO BE обмен по созданию заказа на сайте Actor USER participant SITE database SITE_database participant WTIS database WTIS_database queue kafka_1 queue kafka_2 participant OMS database OMS_database '-------------------------------------------action------------------- autonumber USER -> SITE: Нажимает кнопку оформить заказ SITE -> SITE_database: Проводит внутренние проверки\nи сохраняет в БД SITE_database -> SITE: Заказ успешно сохранен autonumber 4.1 alt Тип доставки в заказе: Самовывоз SITE -> kafka_1: Записывает заказ в топик kafka: site.order.pickup.created else Тип доставки в заказе: Курьером SITE -> kafka_1: Записывает заказ в топик kafka: site.order.courier.created else Тип доставки в заказе: ТК SITE -> kafka_1: Записывает заказ в топик kafka: site.order.transport_company.created end autonumber 5 OMS -> kafka_1: Читает сообщения из топиков OMS -> OMS: Проверяет условия для MVP WTIS -> kafka_1: Читает сообщения из топиков WTIS -> WTIS: Проверяет условия для MVP autonumber 9.1 alt Подходит под условия OMS WTIS -> WTIS: Не обрабатывает такой заказ OMS -> OMS_database: Сохраняет заказ OMS -> kafka_2: Записывает заказ в топик: oms.orders.sync OMS_database -> OMS: Заказ успешно сохранен WTIS -> kafka_2: Читает топик WTIS -> WTIS: Создает заказ WTIS -> OMS: Возвращает модель заказа через workflow OMS -> OMS: Проводит автооформление OMS -> WTIS: Резервирует товары autonumber 9.9.1 alt Успешно зарезервировано WTIS -> OMS: Товары в заказе успешно зарезервированы WTIS -> WTIS: Конец процесса else Не успешно зарезервировано WTIS -> WTIS: Ставит задачу на менеджера, меняет мастер-систему WTIS -> WTIS: Конец процесса end else Не подходит под условия OMS autonumber 10.1 OMS -> OMS: Не обрабатывает такой заказ WTIS -> WTIS_database: Сохраняет заказ WTIS_database -> WTIS: Заказ успешно сохранен WTIS -> WTIS: Конец процесса end @enduml