Skip to content

Conversation

@eneshoxha
Copy link
Contributor

No description provided.

eneshoxha added 16 commits July 28, 2025 13:12
Add new library to enrich the functionality of Cortex.Mediator - Cortex.Mediator.Behaviors.FluentValidation

Add ValidationCommandBehavior
Add ValidationQueryBehavior

Update README.md file
v2/feature/[Add Validation Support for Cortex Mediator] #129:
Update Kafka integration and versioning for net8.0

- Updated `Cortex.Streams.Kafka.csproj` to target `net8.0` and increment version to `2.0.0`.
- Made `KafkaSinkOperator<TInput>` and `KafkaSourceOperator<TOutput>` classes sealed.
- Reformatted constructor parameters in `KafkaSourceOperator<TOutput>` for readability.
- Enhanced `Stop` method in `KafkaSourceOperator<TOutput>` with null checks and improved exception handling.
- Added `KafkaSinkOperator<TKey, TValue>` for producing messages with keys and values.
- Introduced `KafkaSourceOperator<TKey, TValue>` for consuming messages with keys and values.
- Both new classes include methods for processing and managing Kafka message flow.
v2/feature/[Add support for Keys in Kafka Stream] #127:
Enhance Cortex.Streams.Pulsar documentation and functionality

Updated README.md with an introduction, features, installation instructions, and usage examples for the Pulsar Sink and Source Operators. Added sections for contributing and sponsorship.

Modified `Cortex.Streams.Pulsar.csproj` to ensure README.md is always included in the output directory.

Refactored `PulsarSinkOperator.cs` to support an optional key selector for key-based message sending.

Changed `PulsarSourceOperator.cs` output type to `KeyValuePair<string, TOutput>` for key-aware message consumption, updating the `Start` method accordingly.
v2/feature/[Add support for Keys in Pulsar Stream] #128:
Update package versions for dependencies

- Updated `DotPulsar` from `4.2.2` to `4.3.1`
- Updated `Google.Protobuf` from `3.30.2` to `3.31.1`
- Updated `protobuf-net` from `3.2.46` to `3.2.55`
Add Cortex.Vectors project with vector implementations

This commit introduces the `Cortex.Vectors` project to the solution, featuring:
- `BitVector<T>` for fixed-length bit-packed vectors.
- `DenseVector<T>` for contiguous dense mathematical vectors.
- `SparseVector<T>` for dictionary-backed sparse vectors.
- An interface `IVector<T>` defining core vector operations.
- Extension methods for cosine similarity and vector conversions.
- Updated project file to target .NET 8.0 and 9.0.
- Enhanced documentation in `README.md` with usage examples.
- Added license file and project image.
v2/feature/[Creation of Cortex.Vectors] #107
Introduced a new section for **Cortex.Vectors**, highlighting its high-performance vector types for AI, including Dense, Sparse, and Bit types. Added a NuGet version badge for easy access to the package.
…e (ICommand)

Add support for non-returning CQRS commands

Introduced a non-generic `ICommand` interface for commands that do not return values, alongside a corresponding `ICommandHandler<TCommand>` interface. Added `ICommandPipelineBehavior<TCommand>` and `CommandHandlerDelegate` to enable pipeline behaviors for non-returning commands.

Updated `MediatorOptions` to manage both returning and non-returning command behaviors, including the addition of `VoidCommandBehaviors`. Enhanced `MediatorOptionsExtensions` and `ServiceCollectionExtensions` to register default and custom behaviors for non-returning commands.

Extended `IMediator` with a `SendCommandAsync<TCommand>` method for non-returning commands. Updated the `Mediator` implementation to handle non-returning commands and added a `PipelineBehaviorNextDelegate<TCommand>` for behavior chaining.

Added `VoidLoggingCommandBehavior` to log execution details for non-returning commands. Refactored existing code to ensure compatibility with the new non-returning command infrastructure.
Add async Emit and StreamStatuses enum to IStream

Introduced `EmitAsync` in the `IStream` interface and `Stream` class to support asynchronous data emission with `CancellationToken`. Added the `StreamStatuses` enum to replace string-based stream status, providing a strongly-typed representation. Updated `GetStatus` to use the new enum. Enhanced documentation and ensured backward compatibility.
v2/feature/ #141 : Cortex.Mediator - Add Non Returning Command Interface (ICommand)
@eneshoxha eneshoxha added this to the Cortex v2.0 milestone Oct 10, 2025
@eneshoxha eneshoxha self-assigned this Oct 10, 2025
@eneshoxha eneshoxha added the feature This label is in use for minor version increments label Oct 10, 2025
@eneshoxha eneshoxha merged commit 700f272 into v2/main Oct 10, 2025
@eneshoxha eneshoxha deleted the v2.0/release branch October 10, 2025 20:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature This label is in use for minor version increments

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants