Marten 9.59 открыл запросы по тегам событий в сессии чтения

Marten 9.59 открыл запросы по тегам событий в сессии чтения
Содержание статьи

9 ноября вышел Marten 9.59.0. В этой версии библиотека для .NET, которая использует PostgreSQL как хранилище, добавила чтение событий по тегам через IQuerySession.Events. Обработчик чтения теперь может использовать сессию запросов. На Mentoring.digital разберём, какие вызовы можно перенести.

Какие операции добавили

EventsExistAsync проверяет наличие событий, QueryByTagsAsync читает события по тегам, а AggregateByTagsAsync строит агрегат из выбранных событий. Marten использует такие теги в модели DCB, где связанные события можно выбирать по меткам. Метод FetchForWritingByTags по-прежнему требует сессии записи. Для собственных реализаций IQueryEventStore нужно добавить три новых члена интерфейса.

Что проверить при обновлении

В тестовой базе создайте две группы событий с разными тегами. Для обработчика чтения сравните выборку и итог агрегации до и после перехода на IQuerySession. Проверьте ответ при отсутствии нужного тега. Если обработчик сохраняет события, оставьте сценарий записи отдельным и проверьте его с прежним типом сессии.

Есть и изменение для мониторинга. В связке с CritterWatch можно наблюдать возраст самого старого необработанного события в проекции. Число событий и их возраст помогают оценить размер очереди и время ожидания самого раннего элемента.

Тестовые данные и план проверки хранилища событий можно обсудить с наставником по PostgreSQL.

Похожие статьи по данной теме