Выбор концепции архитектуры системы управления контентом (CMS) для микросервисной архитектуры

При реализации достаточно крупной системы на микросервисах столкнулись со следующей проблемой: необходимо реализовать систему управления контентом для системы. Сервисы пишутся на различных ЯП: C# (ASP.NET Core), PHP (Laravel), Go. Видится 2 варианта решения проблемы:

  1. Реализация бэкенд библиотек, выполняющих все необходимые для CMS операции для каждого ЯП и каждой ORM, фронт общий, библиотеки работают по единым интерфейсам, возникнут большие проблемы с обеспечением одинакового состояния библиотек для разных языков/ORM. Библиотека подключается к каждому сервису, у которого есть справочники.
  2. Реализация единого CMS сервиса, связанного с базами данных других микросервисов напрямую. Нарушается концепция микросервисной архитектуры, но при этом решается проблема совместимости и сложности составления справочников, которые содержат в себе данные из различных сервисов. Кроме того уменьшается сетевая задержка на лишние API запросы к сервисам.

Оба варианта выглядят как полные костыли. Есть ли какой-то адекватный вариант решения этой проблемы? Или может можно усовершенствовать какой-то способ из перечисленных выше?


Ответы (0 шт):