Какую пользу OSGi и Akka могут получить друг от друга? Как это структурировано?

Вслед за моим скореенелогичный вопросс просьбой использовать OSGiили же Акка, мне посоветовали, что оба могут быть использованы вместе, и что каждый из них решает разные проблемы. Я мог бы использовать OSGi для обеспечения модульности и обновляемости, а Akka для обеспечения масштабируемости и производительности. Поскольку не было много экспериментов с объединением OSGi и Akka, у меня все еще есть пара вопросов.

Как OSGi и Akka могут использоваться вместе и приносить пользу друг другу? Как это структурировано? Все ваши актеры находятся в одном пакете OSGi, каждый из них получает отдельный пакет, есть ли гибридное решение или нет действительно «правильного» способа сделать это?

Я бы разделил большие компоненты на разные пакеты OSGi. Каждая связка существует из разных актеров Akka. Каждый пакет может затем масштабироваться отдельно друг от друга в зависимости от нагрузки на этот пакет. В каждом комплекте прозрачная балансировка нагрузки может использоваться для распределения нагрузки по различным субъектам. Будет ли это правильный и реалистичный способ сделать это?

РЕДАКТИРОВАТЬ

Мысли после реализации: они явно дополняют друг друга! Я разделил свое приложение на большие блоки, которые затем внедрил в части приложения с помощью Spring. Внутри больших блоков я использовал только Акку. Ворота в блоки - Типизированные Актеры. Чтобы сделать мою систему полностью асинхронной, мне пришлось реализовать некоторые дополнительные функции. Так что блокирующих вызовов не осталось, все интерфейсные методы должны возвращать тип void. Не смог найти другого пути. Затем вы можете передать сообщение через интерфейс в качестве атрибута, который переносится в течение всего пути запроса, который регистрируется в «ответчике» в начале запроса. В конце объект DeferredResult возвращается успешно или возвращается ошибка / тайм-аут.

Ответы на вопрос(1)

Ваш ответ на вопрос