Я хочу сделать мой микросервис совместимым как с реляционными, так и нереляционными базами данных,
В настоящее время у меня есть пять небольших модулей, которые составляют один микросервис:
- Контроллер-модуль - Содержит все мои контроллеры и зависит от сервисного модуля
- Сервисный модуль - содержит сервисы, которые связываются со слоем БД для получения данных или публикации данных и, очевидно, зависят от уровня данных (common-db -модули)
Common-db-modules- этот модуль определяет контракты (только интерфейсы) для слоев данных, которым необходимо следовать, чтобы быть совместимыми со службой
Данные -layer - этот модуль обеспечивает конкретную реализацию контрактов, определенных common-db-module. В зависимости от базы данных может быть несколько уровней данных. что означает один для Пн go ДБ, один для MySQL, и т. д. c
Упаковка: количество упаковочных модулей определяется на основе используемых дБ, упаковочных пакетов
- контроллер-модуль
- Сервисный модуль
- Один уровень данных (БД, для которого сделана эта упаковка)
Мой вопрос: "Есть ли способ устранить этот общий контракт для БД и иметь единую реализацию уровня данных, которая будет обслуживать как реляционные, так и нереляционные БД?"