-
Notifications
You must be signed in to change notification settings - Fork 37
Kurrent client v2 + groundwork for schema registry #357
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
Draft
w1am
wants to merge
129
commits into
master
Choose a base branch
from
schema-registry-reloaded
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
dropped support for net6.0 and net7.0 added some helpers to fluentdocker playing around the idea of keeping the container on tests
…et into DEVEX-185-Rebranding
…et into DEVEX-185-Rebranding
Co-authored-by: Yorick Laupa <[email protected]>
Refactored the folder structure for streams and protocol files to improve organization and clarity. Introduced `Modules` as the main folder for streams, and migrated protocol definitions to a new hierarchical structure under `proto/kurrentdb/protocol`. Added new v2 protocol files for schema registry functionality.
Moved core files and modules to reorganized namespaces for better project modularity and maintainability. Introduced a clearer folder structure aligning with version-specific implementations, while consolidating and relocating common utility files.
`DefaultRequestVersionHandler` was removed to simplify or deprecate its functionality. Additionally, the namespaces were updated to adopt a cleaner, concise syntax throughout the project for improved readability and consistency.
Removed redundant `using` directives and simplified several class constructors. Streamlined method signatures and adhered to consistent formatting across interceptors. Introduced `KurrentDBConnectionString` for parsing and managing connection strings, along with updated connectivity settings implementation in `KurrentDBClientConnectivitySettings`.
…otobuf. Added abstractions and implementations for schema serialization and deserialization, enabling multi-format data handling. Included support for schema-based data validation, serialization exceptions, and extensibility for future formats. Refactored client modules to integrate the schema framework seamlessly.
Removed legacy stream handling code and replaced it with more modular, extensible append models using `OneOf` and Proto-based definitions. Introduced new `Appender` and `Protocol` utilities for improved batching, schema handling, and multi-stream transactional operations. Updated metadata processing strategy for compatibility with both old and new database contracts.
Deleted unused or outdated gRPC client-related code, schema serialization infrastructure, and related logic. Simplifies the codebase by discarding legacy components no longer in use or relevant.
Refactored schema serialization to use a streamlined auto-registration and validation approach. Introduced new exception types to improve error specificity, added gRPC compression support (e.g., Brotli), and improved hash code generation APIs. Replaced legacy serialization code, cleaned up unused methods, and aligned serialization formats with updated schema registry standards.
Refactor error handling in PersistentSubscriptionsModel, RecordSchemaInfo, and StreamsClient files to improve clarity and maintainability. - Simplified error type references by removing redundant namespace prefixes. - Renamed StreamsClient to StreamsClient for consistency across the codebase. - Adjusted method signatures to align with updated error handling conventions.
Consolidate and rename namespaces for improved clarity and structure. This change enhances maintainability and aligns with the new project organization.
…riptionsClient for consistency
Update namespaces in persistent subscription files to improve structure and maintainability. This change enhances code readability and aligns with the overall project organization.
- Updated service names in operations.proto, streams.proto, and usermanagement.proto to follow a consistent naming convention. - Added C# namespaces for better organization in generated code. - Minor formatting adjustments for improved readability.
…rojections - Replace EventStore.Client references with KurrentDB.Protocol in multiple files - Clean up appsettings.json by removing unnecessary blank lines - Adjust formatting for consistency across various files
Implement ConnectorsService with methods for creating, reconfiguring, deleting, starting, stopping, and renaming connectors. This service provides a structured way to manage connector lifecycle and settings. Includes messages for handling connector operations and responses.
- Rename ProjectionsClientModel and PersistentSubscriptionsModel to ErrorResults for clarity. - Introduce new ConnectorType and NodeAffinity enums for better type management. - Update LegacyExceptions to improve error handling consistency across the Connectors module. - Refactor RegistryClient and OperationsClient to streamline service client initialization.
- Renamed model files for consistency and clarity. - Updated exception handling to use KurrentException instead of KurrentClientException. - Added new error details for connectors and persistent subscriptions.
- Consolidate persistent subscription related files by renaming for clarity - Update namespaces to reflect new organizational structure - Introduce new enums for projection modes and subsystem states - Adjust service names in proto files for consistency - Fixed v1 protocol service names - Refactored interceptors - Deleted zombie code
… clarity - Rename PersistentSubscriptionInfo to PersistentSubscriptionDetails - Update method signatures and internal references accordingly - Remove unused legacy code and imports - Improve error handling and exception mapping for subscriptions
…spaces - Renamed exception classes for clarity and consistency. - Updated namespaces to reflect new organizational structure. - Adjusted method signatures to use new action enum for Nack operations. - Modified properties in PersistentSubscriptionDetails for improved readability.
…factored multiple projections methods - Updated method name from Shutdown to ShutdownServer for clarity. - Renamed ShutdownError to ShutdownServerError to reflect the new method name. - Adjusted related error handling in AdminClient and ErrorResults.
- Introduced default options for DeleteProjectionOptions and ListProjectionsOptions. - Added ProjectionStatistics and ProjectionStatus records for better state management. - Refactored ProjectionDetails to streamline properties and improve clarity. - Created ProjectionsMapper for mapping projection statistics and details. - Updated error handling in ProjectionsClient for better clarity on projection states.
- Removed unnecessary comments from CoreErrorDetails messages. - Added FailedPrecondition error type to ErrorDetails. - Updated DeleteProjectionOptions to default DeleteEmittedStreams to true. - Refactored ProjectionsMapper methods for clarity and consistency. - Improved error handling in ProjectionsClient methods. - Added extension methods for ProjectionsClient to simplify usage.
…ly for resilient backdoor calls Add new projection-related types and options to enhance projection management capabilities: - Introduced `ProjectionDefinition` for defining projections. - Added `ProjectionType` enum to categorize projections. - Enhanced `ProjectionDetails` to include definition and type. - Updated various client methods to accommodate new projection options.
- Rename `SubClientBase` to `ModuleClientBase` in relevant classes. - Refactor `ProjectionsClient` to streamline backdoor client usage. - Introduce `EnsureSuccessStatusHandler` for improved HTTP response handling. - Add `KurrentBackdoorClientFactory` for better management of HTTP clients. - Enhance `ConnectionOptionsBuilder` and `KurrentClientSecurityOptions` for clarity and functionality. - Clean up unused code and comments across multiple files.
…ted references - Updated class names and references across multiple files for consistency. - Removed unused imports and cleaned up code structure. - Enhanced resilience handling in client configurations.
Add StreamState enum to represent the state of streams (Active, Deleted, Tombstoned, Missing) and implement classes for handling stream append requests and responses. Refactor existing message handling to utilize new structures for better clarity and maintainability.
…r handling - Deleted obsolete `SerializationExceptions` and `SystemRoles` files. - Simplified legacy exception mapping by removing `TryMapToErrorResult`. - Updated `StreamsClient` methods to handle legacy errors consistently. - Replaced custom `MaximumAppendSizeExceededException` with `KurrentException`. - Enhanced `ErrorDetails` records with utility methods for consistency.
* Tracing multi stream append * use correct method for certificate-only loading (#367)
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.
This PR primarily introduces the Kurrent Client v2, which includes major updates and improvements to the client user experience from KurrentDB client v1.0.0 that was released this year. While initial scaffolding and setup for the schema registry have been started, the schema registry is not complete and is not fully tested.
PR includes multi append and result base pattern for all operations.
Changelist
fixes DEV-853 that Includes Authorization in Empty instance of
UserCredentialsfixes DEV-852 to support messages with no namespaces when using
MesageSchemaNameStrategy