Скажем, у меня есть System1, которая подключается к системе 2 через адаптер-микросервис между ними.
System1 -> rest-calls --> Adapter (converts request-response + some extra logic, like validation) -> System2
Система1 больше похожа на монолит, существует для многих стран (но может измениться).
Вопрос: с точки зрения архитектуры и развертывания MicroService, должен ли адаптер быть по одному на страну. Скажите Adapter-Uk, Adappter-AU и т. Д. Или это должен быть только адаптер, который может одновременно работать со многими странами?
Я имею в виду:
Чтобы иметь отдельную систему / сервис-адаптер :
Преимущество : имеет одну или несколько кодовых баз, адаптивная логика кода между странами в 90% одинакова . Легко вводить новые изменения.
Недостаток : как только мы развернем систему и обнаружим ошибку, это может повлиять на многие страны одновременно. Не безопасно.
Для отдельной системы :
Недостаток : как только в одну систему было внесено какое-то общее изменение, его следует «вставить» для всех других стран / служб. Повторяющийся, не умный .. работа, с точки зрения разработчика.
Преимущество :
Безопаснее изменить / развернуть.
В: Каков предпочтительный путь с точки зрения микросервисной архитектуры?