Комментарии 9
Поставил вам минус, потому что деталей в тексте - кот наплакал. Картинка - это единственное что-то техническое в статье.
Идея интересная, назначение понятно, но расскажите, пожалуйста, про реализацию поподробнее? Какой протокол общения с этим сервисом? HTTP? Websocket? Как мобильный клиент читает события? Long polling?
Какие были альтернативы?
спасибо за вопросы. для МП у нас выставлено REST API, работаем по HTTP. Событий для мобильного клиента, они работают с нами как с синхронным API в виде запрос-ответ.
То есть это просто HTTP API перед RabbitMQ? А тогда какая, хотя бы одна, причина для использования Rabbit здесь? Клиент приходит, открывает коннект к серверу (с авторизацией каждый раз), запрашивает новые сообщения? Немного похоже на общение с БД?
Почему не взять, например, просто Redis и читать как из базы, благо там доступ будет хотя бы быстрее. Даже Kafka здесь, наверное, подойдет лучше.
AMQP протокол хорош именно тем, что поддерживается постоянное соединение и брокер может отправить сообщение клиентам сам, тем самым доставка может происходить быстрее и меньше трафика/операций. В случае с мобильными клиентами и ненадежной связью (непостоянными IP, etc) можно было бы использовать прослойку в виде (например) SocketIO - хотя бы такой смысл тут мог быть в RabbitMQ..
Вы понятие API-gateway заново изобрели?
не мы — как говорится в статье, технологию разработали в SoundCloud :)
на API Gateway BFF действительно похож — в некоторых источниках его называют вариацией этого паттерна. главное различие — BFF, как правило, ориентирован на один тип клиента. в результате такая архитектура оказывается проще, а модуль — легче
Бекендеры совсем обленились. Раньше вообще вся аппа была на беке. Потом бек чисто из БД json стали доставать. А теперь - даже API удобное для фронта не допросишься. Ишь себе - сидят, какие-то микросервисы пилят, а фронты теперь себе и бекенд должны делать сами :)
Backend-for-Frontend: когда простого API не хватает