Как стать автором
Обновить

Комментарии 9

Поставил вам минус, потому что деталей в тексте - кот наплакал. Картинка - это единственное что-то техническое в статье.

Идея интересная, назначение понятно, но расскажите, пожалуйста, про реализацию поподробнее? Какой протокол общения с этим сервисом? HTTP? Websocket? Как мобильный клиент читает события? Long polling?

Какие были альтернативы?

спасибо за вопросы. для МП у нас выставлено REST API, работаем по HTTP. Событий для мобильного клиента, они работают с нами как с синхронным API в виде запрос-ответ.

То есть это просто HTTP API перед RabbitMQ? А тогда какая, хотя бы одна, причина для использования Rabbit здесь? Клиент приходит, открывает коннект к серверу (с авторизацией каждый раз), запрашивает новые сообщения? Немного похоже на общение с БД?

Почему не взять, например, просто Redis и читать как из базы, благо там доступ будет хотя бы быстрее. Даже Kafka здесь, наверное, подойдет лучше.

AMQP протокол хорош именно тем, что поддерживается постоянное соединение и брокер может отправить сообщение клиентам сам, тем самым доставка может происходить быстрее и меньше трафика/операций. В случае с мобильными клиентами и ненадежной связью (непостоянными IP, etc) можно было бы использовать прослойку в виде (например) SocketIO - хотя бы такой смысл тут мог быть в RabbitMQ..

Мы не совсем свободны в выборе технологий, ориентируемся на стек заказчика. В частности, поэтому и Rabbit здесь используем


Также у нас ответы не просто клиент->RMQ->клиент, есть еще доп. рест вызовы, бизнес логика, маппинги всякие, БД

Вы понятие API-gateway заново изобрели?

Вообще говоря, BFF понятие не новое. Лет пять ему уже точно. А так — да, это по сути API Gateway, специализированный под конкретный тип клиентского приложение(web или мобильное, например).

не мы — как говорится в статье, технологию разработали в SoundCloud :)


на API Gateway BFF действительно похож — в некоторых источниках его называют вариацией этого паттерна. главное различие — BFF, как правило, ориентирован на один тип клиента. в результате такая архитектура оказывается проще, а модуль — легче

Бекендеры совсем обленились. Раньше вообще вся аппа была на беке. Потом бек чисто из БД json стали доставать. А теперь - даже API удобное для фронта не допросишься. Ишь себе - сидят, какие-то микросервисы пилят, а фронты теперь себе и бекенд должны делать сами :)

можно взглянуть и с другой стороны — BFF упрощает жизнь фронтендерам и помогает им отвязаться от многих процессов на бэкенде

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации