Releases: dolittle/DotNET.SDK
Release v22.1.0
Summary
Adds support for new features from runtime V9.1. This includes the ability to configure event handlers to start from the latest events instead of the beginning (startFrom), as well as being able to limit the handler to events produced within a specific timeframe. (startFromTimestamp, stopAtTimestamp)
In addition this release comes with new analyzers for event handlers, making sure that incorrect use of the handlers should be a compile time issue instead of a runtime one.
Added
- EventHandlerAttribute: startFrom (Earliest / Latest)
- EventHandlerAttribute: startFromTimestamp - Overrides startFrom if set, ensures the handlers starts on the first event after the given timestamp. It can be in the future.
- EventHandlerAttribute: stopAtTimestamp - If set, the event handler will stop processing when it reaches events newer than this timestamp.
- Additional Roslyn analyzers, to ensure correct use of EventHandlers / aggregates
Release v22.0.5
Summary
This solves for timing issues with VERY large aggregates. Normally this will not be necessary, but if aggregates are very long and take a long time to rehydrate, this will let them still work correctly. In addition, added DefaultAggregatePerformTimeout which can be set globally to time out perform requests if they are extremely slow.
Added
DefaultAggregatePerformTimeout
Removed
- Duplicate tracing of event handlers
Release v22.0.4
Summary
Added analyzer to guard against bugs where new events are produced in an On method. These should only update the internal state of the aggregate, not produce new events.
Added
- Check against
Applyused in aggregateOnmethods
Release v22.0.3
Summary
Reduces some overhead by reducing duplicate tracing of event handling. Fixed an issue where both the client and actor would wrap the exception in AggregateRootOperationFailed
Changed
- Removed duplicate event traces (avoid tracing HandleEventRequest).
Fixed
- Avoids wrapping AggregateRootOperationFailed in an AggregateRootOperationFailed.
Release v22.0.2
Summary
Simplify usage of AggregateRootTests<T>, no longer requiring the user to provide the callback to create the aggregate instance.
Added
- Allow AggregateRootTests to be used without providing callback to instantiate aggregate instance
Release v22.0.1
Summary
Minor Dolittle.SDK.Testing improvements
Added
- Added ability to access the events being asserted on in
EventValueAssertion<T>.
Fixed
- Fixed an issue with
EventSourceIdnot being set during testing when using aggregate roots with default constructor.
Release v22.0.0
Summary
Major SDK release supporting runtime V9.0.0. In addition to V9 having major performance improvements, this allows the user to also enable concurrent processing with partitioned event handlers.
Added
Changed
- Improved eventhandler disconnect procedure
Prerelease v22.0.0-arkenstone.1
Added
- Graceful disconnect protocol support
- Graceful disconnects implemented for eventhandlers
Prerelease v22.0.0-arkenstone.0
Summary
Added concurrency support for eventhandlers.
Adds OpenTelemetry metrics to the SDK, enabled by default when OTEL is configured.
Added Metrics
- AspNetCore metrics
- Dotnet runtime metrics
- Global metrics for Dolittle SDK for events committed, events processed/failed & aggregate events read / rehydrated.
Breaking changes
- This will not work with runtimes older than V9
Release v21.0.1
Summary
Removed retries against aggregate actors. Added new test classes for Aggregates.
Added
- Additional helpers / assertions for testing aggregate roots
Fixed
- Removed potential retries on Aggregate.Perform, which could occur when response times are greater than the set retry timeout.