Всем привет. Есть вопрос к сообществу.
Задача: есть микросервис, в котором есть товары.
Сущность товара состоит из: id, цена, название, картинка.
Есть микросервис биллинга, в котором есть транзакции.
Транзакция - id, дата транзакции, id пользователя, id товара.
Нужно запилить фронт, на котором будет показываться список транзакций сразу с инфой по товарам. Например, в элементе списка будет дата транзакции, имя и фотка товара.
Проблема - данные берутся из разных микросервисов.
Первый вариант, который приходит в голову - запилить backend for frontend, который будет собирать сначала транзакции, а потом списки товаров и уже готовый json отдавать на фронт.
Но проблема - что если понадобится что-то более сложное? Может быть сразу с пагинацией и фильтрацией.
Какие еще варианты есть?
Все зависит от нагрузки и профиля.
Если по требованиям нормально работает merge (на bff или клиенте - это тоже могут быть разные варианты), то проще оставить merge.
Если не высокая нагрузка, то получить список транзакций, а по ним вытащить списком те товары, которых еще нет в кэше - достаточно быстро.
Если нужны сложные фильтрации по связанным данным (история по имени товара, но отсортированная по дате), то не обойтись без витрины данных, оптимизированной под задачи поиска (PG/ClickHouse/ElasticSearch etc)