- таблицы базы данных.
Микросервису B нужны данные из таблиц, описанных в микросервисе A.
Как можно получить данные?
1. описать аналогично таблицы в микросервисе B и работать в нём с джанго орм. но тут возможны проблемы. должен быть один источник данных. нарушается dry, возможны проблемы с миграциями (хотя миграции можно держать в одном инстансе, наверно).
2. делать запросы на получение данных в сервис A через какую-то шину (кафка)/хттп?
3. делать коннект бд и получать данные в сервисе B через raw sql.
Какой вариант лучше в такой ситуации? Может, есть ещё какие, более разумные подходы?
микросервисы всегда нарушают dry, а описывать модели в любом случае придется так или иначе в обоих, даже если все данные будешь получать через интерфейс - все равно какую нибудь пидантик модель впихнешь)
Зачастую 2 вариант
Ну вроде как зачастую нужно так проектировать микросервисы чтобы dry не нарушать, зачем тебе два микросервиса в которых одинаковые данные лежат?
а есть опыт написания микросервисов?
3 вариант явно антипаттер shared database
1 вариант это копирование...... источников правды может стать несколько
1 во втором просто миграции не делай
Обсуждают сегодня