На данный момент все мои клиенты находятся в одной базе данных, в одном домене и т. д. на моем величественном монолите на https://www.mystartup.com.
Допустим, я хочу развернуть экземпляр моего приложения rails для одного крупного клиента. И допустим, я могу развернуть другие экземпляры этого приложения rails в будущем.
Дело в том, что я извлекаю и вычисляю некоторые тяжелые данные, и я хочу сделать это один раз, а не во всех экземплярах. Так что я думаю, что я должен делать их в https://secret-api.mystartup.com, и каждый из экземпляров должен делать запросы к нему с токеном секретного доступа.
Но моя проблема заключается в следующем: есть ли способ для https://secret-api.mystartup.com инициировать некоторые вызовы для каждого из доменов, когда это необходимо? Это то, что мы называем «веб-хуками»? или есть какая-то концепция двойного API, которую мне не хватает?





Один вопрос, на который вам нужно ответить, заключается в том, что если этот сервер секретного API необходимо перезапустить! Вы теряете все эти тяжелые вычисления.
Другая проблема с вышеприведенным решением заключается в том, что оно в некотором роде противоречит архитектуре микросервисов ... потому что у вас есть один сервер для секретного API ... Что, если это выйдет из строя; тогда вся ваша система выйдет из строя... С микросервисами; для высокой доступности у вас всегда должно быть несколько серверов для одного и того же API.
Для таких сценариев; когда необходимо выполнить тяжелую работу, одним из решений может быть наличие слоя в памяти между чем-то вроде memcached или redis. Храните свои решения на этом сервере в памяти, а НЕ внутри кеша, поддерживаемого внутри вашего секретного API-сервера. .. Это решение решит обе вышеупомянутые проблемы.
Да, запрос от API к одному или нескольким его клиентским приложениям будет считаться веб-перехватчиком.