Skip to content

Latest commit

 

History

History
279 lines (154 loc) · 11 KB

CHANGELOG.md

File metadata and controls

279 lines (154 loc) · 11 KB

[7.8.0] - 2023-6-16 PR: #135

Summary

Adds ability to perform graceful terminations of event handlers with a custom grace period

Added

  • InitiateDisconnect
  • DisconnectCompleted

[7.7.0] - 2023-6-7 PR: #134

Summary

  • 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

Summary

Added

  • Adds a management api for getting the current Runtime configuration as a yaml string

[7.5.0] - 2022-11-28 PR: #131

Summary

Adds build results in the Handshake request and a management API for getting build results.

Added

  • buildResults field on the handshake request
  • Management service for getting build results

[7.4.1] - 2022-10-26 PR: #130

Summary

Adds support for gRPC-web by publishing a new @dolittle/contracts.web package. This package contains (for now) only the Management services.

Added

  • @dolittle/contracts.web package with generated gRPC-web code.

[7.4.0] - 2022-9-12 PR: #115

Summary

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.

Added

  • aggregateRootVersion (field 7) on the inner CommittedAggregateEvent message in the CommittedAggregateEvents message. It represents the aggregate root version that the event was applied to
  • FetchForAggregateInBatches method to EventStore which takes in a FetchForAggregateInBatchesRequest and streams back FetchForAggregateResponse

Deprecated

  • aggregateRootVersion (field 3) on CommittedAggregateEvents it represents the aggregate root version of the last event in the events sequence, it is now replaced by currentAggregateRootVersion (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

Summary

Added

  • optional otlp endpoint in handshake response

[7.2.0] - 2022-6-16 PR: #108

Summary

Allows activities related to events to be traced across services by using correlationId as traceId.

[7.1.0] - 2022-4-22 PR: #103

Summary

Copies all proto source files to a folder.

Added

  • The .proto source files will now be copied to a folder called protos

[7.0.0] - 2022-3-22 PR: #97

Summary

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.

Added

  • string partitionId = 6 field on ConsumerSubscriptionRequest message

Changed

  • The EventHorizonCommittedEvent event = 2field EventHorizonEvent 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 single contracts package.

Deprecated

  • protobuf.Uuid partitionIdLegacy = 4 [deprecated = true] field on ConsumerSubscriptionRequest 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

Summary

Upgrade the JavaScript Grpc packages to the latest version

Changed

  • Uses the latest versions of JavaScript Grpc packages

[6.8.1] - 2022-3-9 PR: #95

Summary

The contracts are now responsible for their own build tooling giving it a more standard use of the grpc-protobuf tool chains

Changed

  • 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

Summary

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.

Added

  • 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

Summary

Two new event key selectors for projections; StaticKey and EventOccurredKey

Added

  • StaticKeySelector to ProjectionEventSelector oneof
  • EventOccurredKeySelector to ProjectionEventSelector oneof

[6.6.0] - 2022-2-9 PR: #85

Summary

Introduces secondary storage mechanisms for Projection read models, this enables using existing databases as query engines for read models.

Added

  • 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

Summary

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.

Added

  • A server streaming method on Projection Store called GetAllInBatches that streams projection states in batches to the client.

Deprecated

  • The GetAll method on Projection Store has been deprecated in favour of the new GetAllInBatches method.

[6.4.0] - 2022-1-20 PR: #82

Summary

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.

Added

  • VersionInfo is baked into the released libraries
  • Handshake method with HandshakeRequest and HandshakeResponse

[6.3.0] - 2021-11-18 PR: #68

Summary

Adds services to work with tenants and tenant-scoped resources - currently MongoDB is supported - through the Runtime using a Client.

Added

  • 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

Summary

Registration of Aggregate Roots and Event Types can now be done in order to provide an alias to id mapping

Added

  • 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

Summary

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.

Added

  • Adds optional string 'alias' to event handler registration
  • Adds management service for event handlers with 4 endpoints: ReprocessEventsFrom, ReprocessAllEvents, GetAll and GetOne

Changed

  • Updated Grpc and protobuf dependencies

[6.0.0] - 2021-10-13 PR: #53

Summary

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.

Changed

  • 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

Summary

Adds Embeddings services and messages

Added

  • 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

Summary

Added support for imperative Projections, and releasing of generated Go code, and some minor cleanup of code generations scripts.

Added

Changed

  • 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

Removed

  • Code generation for JavaScript.Web using gRPC web, since we are currently not using it and it was not working.