1) Есть несколько «базовых» сериализаторов - таких как Binary, JSON и BSON. Два других примера - сериализаторы GZip / Compression и Encryption являются упаковочными сериализаторами и предназначены только для изменения того, что уже было сериализовано, в поток байтов. Для примера я просто показываю гибкость. Вам не нужно шифровать, если вы не хотите. На самом деле, у меня есть работающий продукт, использующий простой JSON, который делает отладку очень простой, потому что все текстовое.
2) Обе реализации SynchronousDispatcher и AsychronousDispatcher сконфигурированы для запроса и поиска любых неотправленных коммитов. Тебе не нужно делать ничего особенного.
3) Грег Янг рассказал о том, как он «встроил» свои снимки в поток основных событий, но в высокопроизводительных системах возник ряд оптимистичных условий параллелизма и гонки. Поэтому он решил переместить их «вне группы». Я следовал этому решению по многим тем же причинам.
Кроме того, моментальные снимки действительно важны для производительности, если у вас чрезвычайно низкий SLA. Если у вас есть поток с несколькими тысячами событий и у вас нет низкого SLA, почему бы просто не взять минимальный удар по производительности вместо того, чтобы добавить дополнительную сложность в вашу систему. Другими словами, снимки являются «вспомогательными» понятиями. Они находятся в API EventStore, но являются необязательной концепцией, которую следует учитывать для определенных случаев использования.
4) Предположим, у вас была совокупность с десятками миллионов событий, и вы хотели запустить сценарий «что, если» перед самым последним снимком. Намного дешевле перейти от другого снимка вперед. Действительно хорошая вещь в том, что снимки являются вторичной концепцией, заключается в том, что если вы хотите удалить старые снимки, вы можете, и это никак не повлияет на вашу систему.
5) В каждой реализации IPersistStreams есть метод, называемый GetStreamsRequiringSnapshots. Вы предоставляете порог 50, например, который находит все потоки, имеющие 50 или более событий с момента их последнего снимка. Это может (и, вероятно, должно) быть сделано асинхронно из вашей обычной обработки.
6) «Снимки» - это правильный регистр для этого слова. Во многом как «сайт» раньше был «веб-сайт», но из-за общего использования он стал «сайт».