Вводная такая:
Есть два приложения со своими базами данных (одно веб, второе корпоративное серверное приложение). У обоих приложений разные базы данных. У обоих приложений есть API. При добавлении информации в веб приложение (для примера можно взять регистрация нового пользователя) - данные должны в начале отправлять в базу данных сервера, а после (или параллельно) в базу данных корпоративного приложения (естественно используя API). Если же какие то данные добавляются в корпоративном приложении, то они соотвественно в начале сохраняются в базу, а потом отправляется get запрос на сохранение этих данных в базу данных веб приложения.
Вопрос заключается в том как максимально эффективно реализовать на сервере (использую Apollo server, Node) первую часть - где данные изменяются на сайте и соответственно нужно их сохранить в обоих базах . Сразу оговорюсь что реализация должна использовать именно API, так как на уровне баз данных не получиться реализовать синхронизацию. Знаний JS очень мало, поэтому в первую очередь ищу примеры или подробные статьи с реализацией подобного.
Можно уточнить, в чем собственно проблема? Решения то есть в голове, но что под "максимально эффективно" в данном контексте понимается? Скорость? Если да, то на каком участке? Качество кода и архитектуры? И какого поведения нужно добиться? Как с транзакциями, чтоб ни шагу в сторону пока в обе базы не зайдет, или можно с этим поверменить?
А то, если не зная ничего этого, можно предложить спокойно делать запросы к апи после отдачи ответа пользователю уже.
Не совсем понятен вопрос, но судя по всему речь идет не о синхронизации приложений, а о синхронизации данных. Учитывая, что вы ограничены только средствами API, то уже не важно используете ли вы Apollo или что-то другое, в любом случае "закрыв глаза" на остальное, вы можете смело делать запросы на добавление/обновление/удаление данных через имеющееся у вас API ни о какой оптимизации речи быть особо не может, поскольку в том участке, о котором вы говорите, вы можете лишь грамотно использовать API.
В простейшем случае пишется отдельное приложение-синхронизатор, которое через API принимает запросы от приложения 1/2 и формирует запросы в АПИ другого приложения 2/1.