Releases: dolittle/Runtime
Prerelease v8.0.1-mithrandir.6
Summary
This is a test to see benchmarks on release
Prerelease v8.0.1-mithrandir.5
Summary
Check that expected version matches up when committing aggregate root events and implements the FetchForAggregate method on the IEventStore
Prerelease v8.0.1-mithrandir.4
Summary
Actually update the aggregates versions when writing commits
Prerelease v8.0.1-mithrandir.3
Summary
Updates the aggregate versions when writing a commit
Prerelease v8.0.1-mithrandir.2
Summary
Adds graceful shutdowns for EventStore, enabling it to complete all reentrant commit tasks before the service is allowing the shutdown to continue.
Prerelease v8.0.1-mithrandir.1
Summary
Implements the event store as a virtual actor
Prerelease v8.0.1-mithrandir.0
Summary
Fix projects after breaking change to event store
Release v8.0.0
Summary
The breaking change from v6 to v7 was that we changed EventSource and Partition from Guids to Strings - both in the Event Store schema and the Contracts. This ment that upgrading from v6 required both a full upgrade of all microservices that is connected through Event Horizon, and a MongoDB migration tool (that we never completed). This was sub-optimal.
With this release, we introduce another breaking change, to un-break these changes. This means that a v8 Runtime is fully compatible with a v6 Runtime - all you need to do is upgrade the SDK. The v8 Runtime is also compatible with the Event Store from a v7 Runtime, but not the Event Horizon. We consider this a non-issue since it is not used by anyone to our knowledge.
To use Runtime v8, you need to:
- Update your SDK to
17.0.0for .NET, or24.0.0for JavaScript. - Start the Runtime with an environmental variable called
DOLITTLE__RUNTIME__EVENTSTORE__BACKWARDSCOMPATIBILITY__VERSIONset to eitherV6orV7.
This configures how the v8 Runtime will write to the Event Store so that you can roll back to your previous version in case anything goes wrong.
Added
- Reading configuration from a single file called
runtime.jsonin the current working directory, environmental variables, and command line arguments. The configuration specified in theruntime.jsonfile will be overwritten by the previous configuration files (resources.json,tenants.json, ...) so that it is still backwards compatible with older setups.
Changed
- The Event Horizon contracts are compatible with v6 and v8 of the Runtime.
- The EventStore schema is configurable to be compatible with v6 or v7 of the Runtime. This must be configured through the
DOLITTLE__RUNTIME__EVENTSTORE__BACKWARDSCOMPATIBILITY__VERSIONenvironmental variable, otherwise the Runtime will refuse to commit or process any events.
Release v7.8.1
Summary
We have refactored a lot of the internals of the Runtime - to remove code that we no longer need, and to rely more on well tested frameworks over own code. Notable examples:
- The booting system is gone, we only discover DI container bindings and use the .NET hosting model for the rest
- The resources system is gone, and replaced with "normal" configuration. We don't need multiple implementations of the same resource types.
- The configuration system was replaced with the Microsoft Configuration system, which should make it easier to load configuration from multiple sources - and in the future support hot-reloading.
- The
ExecutionContextManagerthat usedAsyncLocalstorage is gone, and we pass along theExecutionContextexplicitly or resolve dependencies from tenant-specific containers. - Removed the custom DepenencyInjection setup, and replaced it with AutoFac and a tenant-specific child container structure that allows us to ensure we don't mix dependencies for different tenants.
- Upgraded from the native Grpc libraries to the C# Grpc libraries that uses AspNetCore (Kestrel) for hosting.
Added
- A HealthCheck endpoint is exposed on the "web" endpoint (defaults to 8001) on
/healthz. This endpoint returns 200 if the configuration files are correctly formatted, the MongoDB databases are reachable and the gRPC services running. Otherwise it returns an error and a JSON structure describing the issues. - The "web" endpoint port is configurable in the
endpoints.jsonfile. - More metrics for
ReverseCallDispatcher
Changed
- Change from the
Grpc.Corenative packages, to theGrpc.AspNetCoreC# packages - The Docker Images that are pushed to Docker Hub are now multi-architecture, supporting
amd64andarm64.
Fixed
- The
RetryTimethat was passed along from the SDKs when a Projection failed was not used, meaning that failing projections were never retried. - Filters that failed to write the filtered event to the stream, threw an error propagated to the SDK instead of handling it as a filter failure and retrying later.
- ReverseCalls where the
Connectarguments were invalid, caused the SDKs to receive a generic gRPC error instead of the failure that occurred in the Runtime.
Deprecated
- The
-arm64images on Docker Hub will no longer be released. The "normal" images should be used in place.
Prerelease v8.0.0-meriadoc.2
Summary
Upgrade to the latest version of dolittle contracts