Т.к. мы не можем сделать выборку всех заказов в статусе X, т.к. их очень много, но мы и не можем сделать выборку с лимитом т.к. не знаем точно, что данные заказы будут оплачены платёжной системой Y и наоборот, если будем строить выборку от оплат. В общем получается, что мы решаем вопросы, которые легко решены в БД, но мы их пытаемся решить в коде. Как поступать то?
Это типичная проблема которая возникает после распила монолита на части. Если раньше
монолит ходил в базу и делал любые SQL, то после разделения отвественностей уже такие
игры не работают.
Вы говорите что не знаете точно какие заказы оплачены. Вам нужно создать новый метод
который в правильном сервисе выдает только оплаченные заказы. А в базу ходить не надо.
Она вообще может быть недоступная по инфо-безопасности для прочих модулей.
Вот и есть правильная микросвервисная архитектура.