Суть проблемы: есть потребность общаться с сервисами через брокера очередей, а также выполнять какие-то задания в рамках своего сервиса. Данную задачу можно решить двумя библиотеками, а можно и одной, если изменить подход.
Изначально был микросервис, потом он развился в несколько модулей, с которыми надо общаться. Плюсом есть общая шина для всех микросервисов и было сделано: внутри микросервиса celery, наружу искали либу для асинхронной работы, но не нашли и начали собирать свою для работы с rabbitmq с протоколом stomp (был выбран как более простой, чем amqp).
Пройдемся по истории, копнем, как на asyncio написать свой протокол общения, как за счет смены подхода можно отказаться от сложного инструмента и при этом еще и выиграть в гибкости.
Основная цель доклада — рассказать про особенности кролика при использовании всех его возможностей в маршрутизации, как можно написать на asyncio свой протокол для общения на примере того же кролика, плюсом как, изменив подход к выполнению заданий, можно снизить сложность проекта за счет того, что и обработка внешних событий, и работа со своими заданиями внутри сервиса могут жить по одним правилам, и какой можно получить с этого профит.