Я внедряю фильтрацию результатов в микросервисах. Существуют микросервисы Manager ( id, policy_id ), Client ( id, region ), Document ( id, client_id ) с отдельными базами данных.
Мне бы хотелось, чтобы менеджер с определенным policy_id мог видеть постраничный результат документов, принадлежащих клиентам, которые живут в определенном регионе .
Пример:
Manager(z,"view_europe_policy")
Client(1,Europe), Client(2,America)
Document(x,1),Document(y,2)
GET /documents?page=1
result: Document(x,1)
Я не могу получить все документы, а затем получить регион из базы данных клиента, поскольку этот подход не поддерживает разбиение на страницы и имеет низкую производительность (N + 1).
Копирование области в базу данных документов также невозможно,Не нашли решения от Axiomatics.
Как реализовать такую фильтрацию?