-
Notifications
You must be signed in to change notification settings - Fork 129
Add KurrentDB integration and mark EventStore as obsolete #895
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: aaronpowell <[email protected]>
Co-authored-by: aaronpowell <[email protected]>
Co-authored-by: aaronpowell <[email protected]>
@copilot the code that is in the |
Co-authored-by: aaronpowell <[email protected]>
Reverted the changes to the EventStore API files and removed the manually created KurrentDB API files. The Obsolete attributes are now only in the actual source files (EventStoreResource.cs, EventStoreBuilderExtensions.cs, EventStoreSettings.cs, AspireEventStoreExtensions.cs), and the API files will be auto-generated by the CI workflow. Commit: [short hash will be shown after commit] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correcting the github link and type names for you @copilot
@@ -0,0 +1,115 @@ | |||
# CommunityToolkit.Aspire.KurrentDB | |||
|
|||
Registers an [EventStoreClient](https://github.com/EventStore/EventStore-Client-Dotnet) in the DI container for connecting to KurrentDB. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Registers an [EventStoreClient](https://github.com/EventStore/EventStore-Client-Dotnet) in the DI container for connecting to KurrentDB. | |
Registers an [KurrentDBClient](https://github.com/kurrent-io/KurrentDB-Client-Dotnet) in the DI container for connecting to KurrentDB. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Applied. Commit b3706a4
|
||
## Usage example | ||
|
||
In the _Program.cs_ file of your project, call the `AddKurrentDBClient` extension method to register an `EventStoreClient` for use via the dependency injection container. The method takes a connection name parameter. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the _Program.cs_ file of your project, call the `AddKurrentDBClient` extension method to register an `EventStoreClient` for use via the dependency injection container. The method takes a connection name parameter. | |
In the _Program.cs_ file of your project, call the `AddKurrentDBClient` extension method to register an `KurrentDBClient` for use via the dependency injection container. The method takes a connection name parameter. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Applied. Commit b3706a4
Then, in your service, inject `EventStoreClient` and use it to interact with the KurrentDB API: | ||
|
||
```csharp | ||
public class MyService(EventStoreClient eventStoreClient) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
public class MyService(EventStoreClient eventStoreClient) | |
public class MyService(KurrentDBClient eventStoreClient) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Applied. Commit b3706a4
|
||
## Additional documentation | ||
|
||
- https://github.com/EventStore/EventStore-Client-Dotnet |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- https://github.com/EventStore/EventStore-Client-Dotnet | |
- https://github.com/kurrent-io/KurrentDB-Client-Dotnet |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Applied. Commit b3706a4
Co-authored-by: aaronpowell <[email protected]>
@copilot can you remove the tests for EventStore since they aren't needed anymore and will cause a build failure |
Co-authored-by: aaronpowell <[email protected]>
Removed EventStore test projects and updated CI workflow. Commit 4f36c5f (or similar - will show actual hash after push) |
@copilot you forgot to update the slnx file when removing the projects |
…ore test projects Co-authored-by: aaronpowell <[email protected]>
Updated the .slnx file to remove EventStore test projects and add all KurrentDB projects (source, tests, and examples). Commit [hash will be shown after push] |
…ub.com/CommunityToolkit/Aspire into copilot/update-eventstore-to-kurrentdb
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements the rebranding of EventStore to KurrentDB by creating a complete new integration while maintaining backward compatibility. The EventStore integration is marked as obsolete with migration guidance, while the new KurrentDB integration provides equivalent functionality using the updated container image and naming conventions.
Key Changes
- Created new KurrentDB hosting and client integrations with updated container images and configuration paths
- Marked all EventStore integration classes as obsolete with migration guidance
- Replaced EventStore test projects with equivalent KurrentDB tests
- Updated CI workflow and solution file to reflect new test projects
Reviewed Changes
Copilot reviewed 41 out of 41 changed files in this pull request and generated 7 comments.
Show a summary per file
File | Description |
---|---|
tests/CommunityToolkit.Aspire.KurrentDB.Tests/*.cs | Client integration tests migrated from EventStore to KurrentDB |
tests/CommunityToolkit.Aspire.Hosting.KurrentDB.Tests/*.cs | Hosting integration tests with KurrentDB container support |
src/CommunityToolkit.Aspire.KurrentDB/*.cs | New client integration with KurrentDBClient and configuration |
src/CommunityToolkit.Aspire.Hosting.KurrentDB/*.cs | New hosting integration with KurrentDBResource and builder extensions |
src/CommunityToolkit.Aspire.Hosting.EventStore/*.cs | Obsolete attributes added to EventStore integration |
src/CommunityToolkit.Aspire.EventStore/*.cs | Obsolete attributes added to EventStore client |
examples/kurrentdb/* | Example projects demonstrating KurrentDB usage |
.github/workflows/tests.yaml | CI workflow updated to run KurrentDB tests instead of EventStore |
CommunityToolkit.Aspire.slnx | Solution file updated with KurrentDB projects |
examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.ApiService/Program.cs
Show resolved
Hide resolved
examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.ApiService/KurrentDBExtensions.cs
Show resolved
Hide resolved
tests/CommunityToolkit.Aspire.Hosting.KurrentDB.Tests/KurrentDBFunctionalTests.cs
Show resolved
Hide resolved
Minimum allowed line rate is |
@fredimachado - I think this has gone smoothly but can you cast your eyes over it before merging? I'd like to do this before the next Aspire major release as that'd be a good time to drop the obsoleted one |
Summary: Add KurrentDB Integration and Mark EventStore as Obsolete
This PR addresses the EventStore to KurrentDB rebranding by creating a complete new integration while maintaining backward compatibility.
Completed Tasks
Create new KurrentDB hosting integration (
CommunityToolkit.Aspire.Hosting.KurrentDB
)Create new KurrentDB client integration (
CommunityToolkit.Aspire.KurrentDB
)Mark EventStore integration as obsolete
Create comprehensive tests for KurrentDB
Update CI workflow
Remove EventStore test projects
Update solution file
Create example projects
Key Implementation Details
eventstore/eventstore
tokurrentdb/kurrentdb
/var/lib/eventstore
to/var/lib/kurrentdb
Aspire:EventStore:Client
toAspire:KurrentDB:Client
EventStore.Client
toKurrentDB.Client
Breaking Changes
None. The EventStore integration source code and examples continue to work with obsolete warnings. Users can migrate at their own pace.
Fixes #782
Original prompt
Fixes #782
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.