Я нахожусь в процессе горизонтального масштабирования приложения и понял, что обновления модели чтения (внешняя проекция через обработчик событий) должны обрабатываться конкурирующими потребителями.
Сначала я предполагал, что япотребуется обеспечить порядок, но это требование зависит от сообщения.В случае оформления покупок в корзине, где я хочу узнать итоги, я могу добавить итоги независимо от порядка - получить сообщение, обновить базу данных SQL и подтвердить сообщение.
Сейчас я ломаю голову над тем, чтобы даже подумать о сценарии / сообщениях, которые могли бы быть чем угодно, но я знаю, что это не так.Некоторая дополнительная ясность и примеры были бы чрезвычайно полезны.
Мои вопросы, с которыми мне нужна помощь, пожалуйста:
Какой тип сообщений должен быть важен при заказе, иКак это можно решить, используя сообщения «как есть»?
Как узнать, от какого события следует подписаться, когда процессы присоединяются / уходят? Я вижу возможные проблемы с синхронизацией, которые могут вызвать подписку.быть запрошенным в сообщении, которое было только что обработано другим процессом?
Я вижу, что существует потребительская стратегия Pinned
для обеспечения максимальной эффективности сродства потока с подписчиком, однако это не так.гарантировано.Я мог бы решить эту проблему, сделав определенный поток однопоточным, обрабатывая только эти сообщения по порядку - возможно ли, чтобы процесс имел несколько подписок на разные потоки?
![eventstore ordering](https://i.stack.imgur.com/HgNTP.png)