Repository navigation
Add KurrentDB gRPC persistence adapter for EventFlow 0.x - #1152
Open
warren-pieterse wants to merge 1 commit into
Open
warren-pieterse wants to merge 1 commit into
warren-pieterse wants to merge 1 commit into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds an opt-in KurrentDB gRPC persistence adapter to EventFlow 0.x while retaining the existing EventStore TCP adapter and all existing core target frameworks.
The new
EventFlow.EventStores.KurrentDBpackage targetsnet48;net8.0, usesKurrentDB.Client1.6.0, and providesUseKurrentDBEventStore(connectionString). The client is owned by each root resolver and shared across its scopes. The adapter implements aggregate append/read, global reads, and soft deletion, preserving stream names, event type names, serialized data/metadata, sequence numbering, and optimistic concurrency exceptions.Checkpoint compatibility
Existing TCP
commit-preparecheckpoints are read inclusively. New checkpoints useafter:commit-prepareand resume exclusively after the last scanned record. They must be stored unchanged and cannot be passed back to the TCP adapter. This avoids unsafe arithmetic on physical log offsets. Migration tests exercise checkpoints produced by the actual unchanged TCP adapter, including transaction records sharing a commit position and end-of-log resumes.Validation
net48on .NET Framework 4.8.1 (runtime 4.8.10008.0), Windows build 26300, using TLS and WinHttpHandler.The existing workflows now provision isolated .NET 8 test databases and always clean them up. Framework runtime tests are enabled explicitly with
-p:EnableNet48Tests=trueand use a separate TLS Docker profile because the existing Windows 10 CI runner label does not establish the HTTP/2 streaming support required by WinHttpHandler.Scope and limitations
The existing TCP adapter, its package version, and its tests are unchanged. This PR is independent of the separate TCP-client 5.0.12 update.
Framework 4.8-targeted binaries were tested on the installed 4.8.1 runtime, not on a Framework 4.8-only installation. Framework runtime usage requires suitable Windows HTTP/2 streaming support and TLS. Development certificate-validation bypasses are confined to local test connection strings. Protocol migration tests do not perform a server database-file upgrade. GitHub CI has not yet run for this PR.