систему на базе eventstore и асинхронных проекций.
Есть объект Товар, у него есть название.
Как при добавлении товара, можно проверить, что товара с таким именем нет? Ведь проекция может запаздывать, а залазить в стор и все события по этому типу применять долго.
Не делать подобные вещи на такой архитектуре.
https://www.google.com/amp/s/domaincentric.net/blog/event-sourcing-projection-patterns-deduplication-strategies%3fformat=amp Это не смотрели?
Это немного не то, тут про идемпотентность запросов. Эту проблему я решаю номером версии. А задача то в том, чтоб не допустить два объекта с одинаковыми именами(не потому, что произошел сбой), а потому, то пользователь попытался два раза добавить один и тот же продукт
не уверен, что поможет конкретно в контексте твоей задачи, но пищу для размышлений может дать такая техника как optimistic lock ( https://en.wikipedia.org/wiki/Optimistic_concurrency_control )
Хм, появилась идея, залазить в снапшот, проверять дублирование названия там, далее смотреть дельту по событиям между снапшотом и евент стором, подгружать события и их проверять. Но думаю, это тоже такое себе решение, т.к. долго
Обсуждают сегодня