который создается в реляционной бд. у него есть покупатель и продавец в атрибутах
этот же ордер нужно копировать в read model (nosql бд), но для контейнера необходимо задать partition key для хорошего перфа. в голову кроме user_id ничего не приходит (чтобы все ордеры были разбиты по юзерам и их можно было очень быстро искать), но тут появляется проблема: т.к. partition key -- строка в данном случае, то придется создавать 2 копии одной рид-модели на buyer_id & seller_id в качестве партишн ключа. ну и в случае обновления ордера придется обновлять все его дубликаты для каждого partition key (в моем случае -- копию для селлера и копию для баера)
это в целом ок решение или лучше подумать ещё ?
никто не знает проблем подобного подхода ? Я вижу, что будет 1) больше логики для апдейта нескольких сущностей 2) будут проблемы с транзакциями, т.к. условный cosmos db не поддерживает транзакционность через несколько партиций но при этом появится возможность держать рид-модели в юзер-специфик репрезентации (типа, одну и ту же проблему заказа можно будет отображать по-разному)
Обсуждают сегодня