6.1.0
🚀 What's New
- Added
AsyncDaemonHealthCheck
to track events handling lag in async projections. Marten now supports a customizable HealthChecks. This can be useful when running the async daemon in a containerized environment such as Kubernetes. The check will verify that no projection's progression lags more than maxEventLag behind the HighWaterMark. The default maxEventLag is 100. Read more in HealthChecks documentation by @daveHylde in #2679
✏️ What's Changed
- Fixed Marten Exceptions transformations when
NpgslCommand
is null. Now you'll see all exception details again when connection to the database cannot be established because of wrong credentials, database unavailability, etc., by @oskardudycz in #2689, #2670 - Set
DeadLetterEvent
as single tenanted for conjoined tenancy. Previously, it was following the global conventions around tenancy, which could be confusing. A dead letter event represents an event skipped for the particular projection. It references that event at a specific global event store sequence. Thus, it has to be global and does not have a tenant. If we rebuild the projection, all read models will be rebuilt using events from all tenants. Read more in the poison event detection docs. by @oskardudycz in #2690, #2686 - Enhanced ProjectionUpdateBatch disposal. There could be a race condition when the session was released, but the processing Queue wasn't completed, which caused the session to be null. Added nullable annotations to make that explicit and fixes accordingly (by checking the cancellation token and implementing disposal consistently). by @oskardudycz in #2690, #2686
- Fixed
NGramIndex
schema SQL diff generation. Now it won't be always dropped & recreated. by @mysticmind JasperFx/weasel#96, #2677 - Updated Weasel to 6.1.0 and other dependencies by @oskardudycz in #2677, #2701
- Added
readonly
modifier to fields that are never changed in various places throughout the codebase by @Lehonti in #2669
📄 Docs updates
- Rewrote introduction docs to make it more accessible and user-friendly by @oskardudycz in #2668
- Added documentation for Using Custom Grouper with Fan Out Feature for Event Projections. It's a useful feature when you want to make event transformations to fine-tune events for projections without impacting the regular event design. by @erdtsieck in #2695
- Added warning regarding connection bleed to the async-enumerable docs. Be aware not to return the
IAsyncEnumerable
out of the scope in which the session that produces it is used. This would prevent the database connection from being reused afterwards and thus lead to a connection bleed. by @FelixLorenz in #2673 - Fixed
mt_doc_deadletterevent
table name in Async Daemon docs by @GKotfis in #2700 - Added building docs steps to PR pipeline to find dead links earlier than after merge by @oskardudycz in #2671
- Excluded pure docs changes to trigger the code build (as we had dedicated pipelines for docs) by @oskardudycz in #2676
See also related Weasel 6.1.0 release notes.
New Contributors
- @Lehonti made their first contribution in #2669
- @FelixLorenz made their first contribution in #2673
- @daveHylde made their first contribution in #2679
- @GKotfis made their first contribution in #2700
- @erdtsieck made their first contribution in #2695
Full Changelog: 6.0.4...6.1.0