@startuml insight_quota_flow skinparam sequenceMessageAlign center Title Алгоритм работы сервиса по API autonumber participant "event_server" as EventServer participant "task_generator" as ITG_API database "Mongo\ninsight.scenarios" as Mongo queue "NSQ\ninsight.task_processor.input" as NSQ EventServer -> ITG_API : На API /events\nприсылается JSON события. ITG_API -> Mongo : Запрос Insight сценариев пользователя из события Mongo --> ITG_API : ""Optional[List]"" сценариев пользователя alt Запрос пришел с пустым списком ITG_API --> EventServer : Возврат пустого списка (т.к. таски никакие не созданы) else Список сценариев не пуст ITG_API -> ITG_API : Создаем список\n""tasks""\nКуда будем писать созданные таски ""Tasks"" loop Для каждого сценария ITG_API -> ITG_API : Создаем объект ""Task"" ITG_API -> NSQ : Отправка в топик брокера сформированной таски ITG_API -> ITG_API : Добавляем их `id` в список ""tasks"" end ITG_API --> EventServer : Возврат списка ""ID's"" созданных тасок end