Как устроить обмен данными между несколькими приложениями?
Дано (это все тестовый пример не имеющий отношения к каким-либо реальным проектам):
- веб-приложение "1" написанное на NodeJS, у которого есть сервис получения списков TODO из базы
- веб-приложение "2" написанное на Java, у которого есть сервис получения пользователей из базы
- веб приложение "3" написанное на Python, которое будет запрашивать данные у приложений 1 и 2.
Необходимо:
- реализовать связь между этими приложениями
- при этом, мы не хотим использовать для связи HTTP. Можно реализовать что-то вроде некой command-bus, которая свяжет все эти три приложения, ну или еще какие-либо интересные способы существуют.
Интересен ваш опыт и практика в такой архитектуре. Буду благодарен за ваши советы и любое чтиво которое поможет решить данную задачу.
А давайте сначала не будем смотреть на следствия, а будем рассматривать причины.
- Почему не хочется использовать HTTP?
- Почему хочется использовать Command bus?
Без этого можно посоветовать только RabbitMQ, как сказали уже, но я просто невероятный подвох чувствую. Просто из опыта
Al, тогда его можно не начинать по тому что в на моменте "в целях исследования" архитектура уже закончилась. Для сообщения между описанными сервисами Command Bus очень и очень плохая затея по тому что вам нужно получать State объектов другого сервиса, а вы туда приплетаете события что мгновенно дает нам понять что state мог быть уже сутки назад и эти данные никому не нужны. событийное взаимодействие не гарантирует ни факта ответа, ни тем более временного промежутка