если в процессе обработки и записи нового стейта стало ясно, что ктото записал конкурентно, пытаемся выполнить команду заново
сейчас так. обработка некоторых команд неидемпотентая, так что есть гемор с тем чтобы такие вещи как-то разруливать. иногда это совсем не просто и не очевидно.
так что в итоге хочется конкурентность убрать вообще, и все действия по сущности выполнять строго линейно.
Локи на базе тоже решение, чёуж. Правда под нагрузкой далеко не уедешь - плохо масштабируется. Но на практике есть куча задач, где постгри хватит за глаза.
лучше всего использовать микросервисную архитектуру, запускать 10 сервисов, по 10 нод каждый, каждый по 10 тредов, но разрешать одновременно выполняться только одной операции на одной машине из одного треда
Олег, ну если там нагрузки мало, и лок происходит редко, то почему бы и нет? Если уже есть пг, например. Конечно, я бы лучше на кафке сделал, и скорее всего это даже проще бы вышло, но вариант с базой тоже рабочий