Skip to content

Releases: dolittle/Runtime

Prerelease v8.0.1-mithrandir.6

07 Apr 19:39
e0329db

Choose a tag to compare

Pre-release

Summary

This is a test to see benchmarks on release

Prerelease v8.0.1-mithrandir.5

07 Apr 11:59
4487b30

Choose a tag to compare

Pre-release

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

07 Apr 08:58
b2243e8

Choose a tag to compare

Pre-release

Summary

Actually update the aggregates versions when writing commits

Prerelease v8.0.1-mithrandir.3

07 Apr 08:10
d99fc5c

Choose a tag to compare

Pre-release

Summary

Updates the aggregate versions when writing a commit

Prerelease v8.0.1-mithrandir.2

07 Apr 07:59
4b1cd3a

Choose a tag to compare

Pre-release

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

06 Apr 11:25
c9f1f54

Choose a tag to compare

Pre-release

Summary

Implements the event store as a virtual actor

Prerelease v8.0.1-mithrandir.0

06 Apr 11:17
4e9925b

Choose a tag to compare

Pre-release

Summary

Fix projects after breaking change to event store

Release v8.0.0

25 Mar 08:01
580c65f

Choose a tag to compare

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.0 for .NET, or 24.0.0 for JavaScript.
  • Start the Runtime with an environmental variable called DOLITTLE__RUNTIME__EVENTSTORE__BACKWARDSCOMPATIBILITY__VERSION set to either V6 or V7.
    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.json in the current working directory, environmental variables, and command line arguments. The configuration specified in the runtime.json file 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__VERSION environmental variable, otherwise the Runtime will refuse to commit or process any events.

Release v7.8.1

25 Mar 07:32
df4bae6

Choose a tag to compare

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 ExecutionContextManager that used AsyncLocal storage is gone, and we pass along the ExecutionContext explicitly 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.json file.
  • More metrics for ReverseCallDispatcher

Changed

  • Change from the Grpc.Core native packages, to the Grpc.AspNetCore C# packages
  • The Docker Images that are pushed to Docker Hub are now multi-architecture, supporting amd64 and arm64.

Fixed

  • The RetryTime that 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 Connect arguments were invalid, caused the SDKs to receive a generic gRPC error instead of the failure that occurred in the Runtime.

Deprecated

  • The -arm64 images on Docker Hub will no longer be released. The "normal" images should be used in place.

Prerelease v8.0.0-meriadoc.2

22 Mar 13:12
192f965

Choose a tag to compare

Pre-release

Summary

Upgrade to the latest version of dolittle contracts