[7.8.0] - 2023-6-16 PR: #135
Adds ability to perform graceful terminations of event handlers with a custom grace period
- InitiateDisconnect
- DisconnectCompleted
[7.7.0] - 2023-6-7 PR: #134
- Added ability to set event handler start position when no state exists.
- Added ability to set stop timestamp to allow event handlers to be phased out
- Added ability to reprocess from a specific timestamp
- Added concurrency parameter for event handlers
[7.6.0] - 2023-1-31 PR: #133
- Adds a management api for getting the current Runtime configuration as a yaml string
[7.5.0] - 2022-11-28 PR: #131
Adds build results in the Handshake request and a management API for getting build results.
- buildResults field on the handshake request
- Management service for getting build results
[7.4.1] - 2022-10-26 PR: #130
Adds support for gRPC-web by publishing a new @dolittle/contracts.web
package. This package contains (for now) only the Management
services.
@dolittle/contracts.web
package with generated gRPC-web code.
[7.4.0] - 2022-9-12 PR: #115
Adds functionality that enables streaming of FetchForAggregateResponse
and filtering of aggregate events based on event type. This is to be able to write an aggregate root rehydration implementation in the SDKs that only fetches the events that are relevant for rehydration and also fixes the problem that fetch for aggregate responses could be too large.
aggregateRootVersion
(field 7) on the innerCommittedAggregateEvent
message in theCommittedAggregateEvents
message. It represents the aggregate root version that the event was applied toFetchForAggregateInBatches
method toEventStore
which takes in aFetchForAggregateInBatchesRequest
and streams backFetchForAggregateResponse
aggregateRootVersion
(field 3) onCommittedAggregateEvents
it represents the aggregate root version of the last event in theevents
sequence, it is now replaced bycurrentAggregateRootVersion
(field 5) which represents the current aggregate root version of the aggregate regardless of how many events are included in the sequence
[7.3.0] - 2022-6-17 PR: #109
- optional otlp endpoint in handshake response
[7.2.0] - 2022-6-16 PR: #108
Allows activities related to events to be traced across services by using correlationId as traceId.
[7.1.0] - 2022-4-22 PR: #103
Copies all proto source files to a folder.
- The .proto source files will now be copied to a folder called
protos
[7.0.0] - 2022-3-22 PR: #97
Un-breaks the event horizon between version v5 and v6 by introducing a new breaking change v7 that uses an API compatible with both versions. We also changed the structure of the source files to get rid of the Fundamentals
directory, and squashed the two previous packages contracts
+ runtime.contracts
into a single contracts
package for the released generated packages.
string partitionId = 6
field onConsumerSubscriptionRequest
message
- The
EventHorizonCommittedEvent event = 2
fieldEventHorizonEvent
message copied from the committed events one, with fields that are backwards compatible - The generated code from the
runtime.contracts
packages are now part of the singlecontracts
package.
protobuf.Uuid partitionIdLegacy = 4 [deprecated = true]
field onConsumerSubscriptionRequest
for backwards compatibility for v5 of contracts- The NuGet Package
Dolittle.Runtime.Contracts
, NPM package@dolittle/runtime.contracts
will not be published from now on.
[6.8.2] - 2022-3-9 PR: #96
Upgrade the JavaScript Grpc packages to the latest version
- Uses the latest versions of JavaScript Grpc packages
[6.8.1] - 2022-3-9 PR: #95
The contracts are now responsible for their own build tooling giving it a more standard use of the grpc-protobuf tool chains
- Removes the dependency on Dolittle.Protobuf packages, moving the grpc-protobuf build tooling over to this repository
[6.8.0] - 2022-2-14 PR: #91
Adds management service for projections, to list, get and replay registered projections. The get and list endpoints are mostly the same as for event handlers, but the replay endpoint only allows replaying from position 0 - since we don't keep track of intermediate projection states. An optional alias is also introduced on the projection registration request, to simplify human interaction with the Runtime.
- A Projections mangament service with GetAll, GetOne and Replay methods
- An optional alias on the projection registration request
[6.7.0] - 2022-2-10 PR: #89
Two new event key selectors for projections; StaticKey
and EventOccurredKey
StaticKeySelector
toProjectionEventSelector
oneofEventOccurredKeySelector
toProjectionEventSelector
oneof
[6.6.0] - 2022-2-9 PR: #85
Introduces secondary storage mechanisms for Projection read models, this enables using existing databases as query engines for read models.
- Copy read model specifications on
ProjectionRegistrationRequest
, to tell the Runtime to make copies of Projection read models to a secondary storage. - MongoDB read model copies with BSON conversions and renaming support for converting Projection states (JSON) to BSON documents so that we can mimic how storing read models directly to a MongoDB collection would work from the SDKs.
[6.5.0] - 2022-1-21 PR: #83
Adds a method on Projection Store to get all projection read models in batches (size determined by Runtime), to alleviate large gRPC messages when the number of read models become large.
- A server streaming method on Projection Store called
GetAllInBatches
that streams projection states in batches to the client.
- The
GetAll
method on Projection Store has been deprecated in favour of the newGetAllInBatches
method.
[6.4.0] - 2022-1-20 PR: #82
Adds support for the client (SDKs) and Runtime to communicate version info and booting configuration values between each other through an initial handshake. Also added VersionInfo that is baked into the compiled code while building on GitHub to use to determine which version of the contracts is used at runtime.
Note: This PR is a fixed release of #76 that failed to release because pre-release is ""
when releasing the actual version.
- VersionInfo is baked into the released libraries
- Handshake method with HandshakeRequest and HandshakeResponse
[6.3.0] - 2021-11-18 PR: #68
Adds services to work with tenants and tenant-scoped resources - currently MongoDB is supported - through the Runtime using a Client.
- Tenants.GetAll: Gets all tenants from the Runtime
- Resources.GetMongoDB: Gets a connection string for a database for the current tenant from the Runtime
[6.2.0] - 2021-11-3 PR: #64
Registration of Aggregate Roots and Event Types can now be done in order to provide an alias to id mapping
- Runtime Services:
- AggregateRoots.RegisterAlias: Register an alias mapping for an Aggregate Root
- EventTypes.Register: Register an EventType with an optional alias
- Runtime Management Services:
- AggregateRoots.GetAll: Gets all registered Aggregate Roots
- AggregateRoots.GetOne: Gets information about a specific Aggregate Root
- AggregateRoots.GetEvents: Gets committed events for an Aggregate Root Instance
- EventTypes.GetAll: Gets all registered Event Types
[6.1.0] - 2021-10-21 PR: #55
Adds a management surface to Event Handlers that has the capability to reprocess event for Event Handlers and also get information about running Event Handlers. Also adds the possibility to register Event Handlers with named aliases for easy tracking.
- Adds optional string 'alias' to event handler registration
- Adds management service for event handlers with 4 endpoints:
ReprocessEventsFrom
,ReprocessAllEvents
,GetAll
andGetOne
- Updated Grpc and protobuf dependencies
[6.0.0] - 2021-10-13 PR: #53
Change from Event Source ID as a UUID to a string, this change is motivated by integrating and extracting events from existing systems - where the ID of the source might not be a UUID. Since the EventSourceID is commonly used as the partition key for streams, we also changed partitions to be strings at the same time.
Also, renamed some fields in messages from artifact to a more descriptive name.
- EventSourceID is now a string instead of a UUID.
- PartitionID is now also a string instead of a UUID.
- Aligned names of event type fields throughout messages.
[5.4.0] - 2021-6-28 PR: #48
Adds Embeddings services and messages
- Service and messages for registering, comparing and projecting Embeddings
- Service and messages for getting Embeddings
- Service and messages for updating and deleting Embeddings
[5.3.0] - 2021-4-9 PR: #46
Added support for imperative Projections, and releasing of generated Go code, and some minor cleanup of code generations scripts.
- Service for registering Projections
- Service for getting Projection States
- Release module workflow for Go (https://go.dolittle.io/contracts/v5)
- Moved things around in the code generation (Fundamentals+Runtime top level -> Language top level)
- Removed generated fundamentals code in @dolittle/runtime.contracts, and added dependency
- Removed
Runtime/
Fundamentals/
directories in JS pacakges
- Code generation for JavaScript.Web using gRPC web, since we are currently not using it and it was not working.