Transferring information from core to rest

Здравствуйте, стоит задача, при обращении к rest api отправлять запрос через core слой с помощью очереди, затем получать ответ из очереди в core слое И отправлять информацию в модуль rest api для продолжения работы. Проблема возникла при передачи данных из core в rest. Сначала попробовал реализовать передачу информации core to rest с помощью event, но столкнулся с проблемой, что event срабатывает в рамках другой сессии т.к. к rest обращается пользователь по логину и паролю в своей сессии, а сообщения из очереди считываются системной сессией и они между собой как я понимаю не пересекаются. Ещё одна реализация получилась, с помощью потворного обращения к rest к тому же бину создаваемого по сессиям, но в таком случае core модуль должен знать место нахождение rest, а это в будущем может принести сложности. Поэтому рассматривается вариант общения через таблицу в БД, но он вероятно медленнее и пр.
Есть ли ещё какая либо возможность передавать информацию из core в rest, быть может особые события или еще что-то?

Добрый день,
А что у вас находится в rest? Какой-то бин с состоянием? Если бин создается по сессии, то вам трудно будет достучаться до такого бина из глобального контекста.
По архитектуре CUBA, это rest api зависит от core, а не наоборот.

Существует такой аддон: https://www.jmix.io/cuba-platform/marketplace/global-events/
но проблему обращения к сессионным бинам он не решит.

Вариант с БД (или другим выделенным хранилищем) предпочтительнее в том числе и потому, что он будет корректно работать, если ваше приложение будет в будущем запускаться в кластере, например будут 2 узла.
Перед тем, как говорить, что работа с БД медленее, нужно оценить частоту получения сообщений. Если этих сообщений, например, больше 100 в секунду, то возможно нужно использовать другое хранилище или очередь, а не табличку в СУБД.

В rest обычный RestController, но при взаимодействии core-rest через event(безрезультатно) или при повторном обращении к другому методу того же бина, я не придумал другого способа, как сделать бин с состоянием и хранить в поле бина данные, которые заполняются по event или из другого метода при дополнительном обращении т.к. нельзя выходить из первоначального метода. Так же пришлось сделать его сессионным чтобы пользователи не пересекались.

На данный момент реализовал через БД с проверкой в цикле while и sleep(300), поэтому мне такой подход кажется менее эффективным чем event, поправьте если я ошибаюсь с выводами и реализацией. Бин контроллера больше не хранит состояние и не является сессионным.

Приходящих сообщений думаю в ближайшее время больше 100шт в секунду не будет. Это сообщения генерируемые при взаимодействии клиента с rest в полу ручном режиме.