Skip to content

Releases

V4.1.1-preview20261113

Pre-release

Choose a tag to compare

@masesdevelopers masesdevelopers released this 12 Nov 21:05
9f687e4

What's Changed

  • [cherry-pick → release/4.X] Update MASES.KNet package version to 3.3.1-preview20261112 (#924) by @masesdevelopers in #926
  • [cherry-pick → release/4.X] Update MASES.KNet.Serialization.Avro package version (#925) by @masesdevelopers in #927
  • Update version from 4.1.1-preview20261112 to 4.1.1-preview20261113 by @github-actions[bot] in #928

Full Changelog: V4.1.1.0-preview20261112...V4.1.1.0-preview20261113

V4.1.1-preview20261112

Pre-release

Choose a tag to compare

@masesdevelopers masesdevelopers released this 12 Nov 17:48
2d44dd4

What's Changed

  • Bump github/codeql-action from 4.39.1 to 4.39.2 by @dependabot[bot] in #912
  • Bump Microsoft.SourceLink.GitHub from 10.0.403 to 11.0.100 by @dependabot[bot] in #918
  • Bump Microsoft.EntityFrameworkCore from 9.0.22 to 9.0.23 by @dependabot[bot] in #915
  • [cherry-pick → release/4.X] Implement full outer join translation (#913) by @masesdevelopers in #921
  • Update version from 4.1.1-preview20261102 to 4.1.1-preview20261112 by @github-actions[bot] in #923

Full Changelog: V4.1.1.0-preview20261102...V4.1.1.0-preview20261112

V3.1.1-preview20261112

Pre-release

Choose a tag to compare

@masesdevelopers masesdevelopers released this 12 Nov 17:47
6ed8b40

What's Changed

  • Bump github/codeql-action from 4.39.1 to 4.39.2 by @dependabot[bot] in #911
  • Bump Microsoft.SourceLink.GitHub from 10.0.403 to 11.0.100 by @dependabot[bot] in #917
  • Bump Microsoft.EntityFrameworkCore from 9.0.22 to 9.0.23 by @dependabot[bot] in #914
  • [cherry-pick → release/3.X] Implement full outer join translation (#913) by @masesdevelopers in #920
  • Update version from 3.1.1-preview20261102 to 3.1.1-preview20261112 by @github-actions[bot] in #922

Full Changelog: V3.1.1.0-preview20261102...V3.1.1.0-preview20261112

V4.1.1-preview20261102

Pre-release

Choose a tag to compare

@masesdevelopers masesdevelopers released this 01 Nov 22:55
ee5c095

What's Changed

  • Bump github/codeql-action from 4.39.0 to 4.39.1 by @dependabot[bot] in #891
  • Bump Microsoft.EntityFrameworkCore from 9.0.21 to 9.0.22 by @dependabot[bot] in #896
  • Bump Microsoft.IO.RecyclableMemoryStream from 3.0.1 to 4.0.1 by @dependabot[bot] in #897
  • Bump Microsoft.SourceLink.GitHub from 10.0.402 to 10.0.403 by @dependabot[bot] in #899
  • Bump MASES.KNet from 3.3.1-preview20261027 to 3.3.1-preview20261031 by @dependabot[bot] in #902
  • Bump MASES.KNet.Serialization.Avro from 3.3.1-preview20261027 to 3.3.1-preview20261031 by @dependabot[bot] in #903
  • Update version from 4.1.1-preview20261027 to 4.1.1-preview20261101 by @github-actions[bot] in #907
  • Update version from 4.1.1-preview20261101 to 4.1.1-preview20261102 by @github-actions[bot] in #909

Full Changelog: V4.1.1.0-preview20261027...V4.1.1.0-preview20261102

V3.1.1-preview20261102

Pre-release

Choose a tag to compare

@masesdevelopers masesdevelopers released this 01 Nov 22:54
942cb4f

What's Changed

  • Bump github/codeql-action from 4.39.0 to 4.39.1 by @dependabot[bot] in #890
  • Bump Microsoft.EntityFrameworkCore from 9.0.21 to 9.0.22 by @dependabot[bot] in #893
  • Bump Microsoft.IO.RecyclableMemoryStream from 3.0.1 to 4.0.1 by @dependabot[bot] in #895
  • Bump Microsoft.SourceLink.GitHub from 10.0.402 to 10.0.403 by @dependabot[bot] in #898
  • Bump MASES.KNet from 2.9.14-preview20261027 to 2.9.14-preview20261031 by @dependabot[bot] in #900
  • Bump MASES.KNet.Serialization.Avro from 2.9.14-preview20261027 to 2.9.14-preview20261031 by @dependabot[bot] in #901
  • Update version from 3.1.1-preview20261027 to 3.1.1-preview20261101 by @github-actions[bot] in #906
  • Update version from 3.1.1-preview20261101 to 3.1.1-preview20261102 by @github-actions[bot] in #908

Full Changelog: V3.1.1.0-preview20261027...V3.1.1.0-preview20261102

V4.1.1.0-preview20261027

Pre-release

Choose a tag to compare

@masesdevelopers masesdevelopers released this 28 Oct 02:05
94aed32

What's Changed

Full Changelog: V4.1.0.0...V4.1.1.0-preview20261027

V3.1.1.0-preview20261027

Pre-release

Choose a tag to compare

@masesdevelopers masesdevelopers released this 28 Oct 02:04
36bcb42

What's Changed

Full Changelog: V3.1.0.0...V3.1.1.0-preview20261027

V4.1.0: updates to KNet 3.3.0 adding projection-aware data retrieve

Choose a tag to compare

@masesdevelopers masesdevelopers released this 28 Aug 16:59
d7a9b7d

Caution

KEFCore 4.1.0 is a complete architectural rewrite. Existing code targeting 2.x will require significant updates. See documentation for the migration guide.

Key breaking changes: DatabaseName renamed to TopicPrefix; full rename of methods and classes to be compliant with project name; singleton/context options separation in IKEFCoreSingletonOptions; PreserveStreamsAcrossContexts removed; ApplicationId, StreamsConfig and ProducerConfig promoted to singleton scope; IEntityTypeProducer replaced by IStreamsChangeManager; EntityState moved from IValueContainer into IKEFCoreRowBag.

Internal benchmarks (100-iteration test suite) show overall query execution time improving roughly 2x without the new value buffer caching, and roughly 7x with caching enabled, compared to the 2.6.7 baseline — with some query patterns improving by 10x or more. This is a combined result of KEFCore's new caching architecture and the underlying JNet/JCOBridge evolution from 2.6.8 to 2.6.9.

This is a major release of Entity Framework Core provider for Apache Kafka, available for Entity Framework Core 8, 9 and 10, based on KNet version 3.3.0, on top of Apache Kafka 4.3.1.

Entity Framework Core provider for Apache Kafka comes with the following changes:

  • MASES.EntityFrameworkCore.KNet:
    • Updates to KNet version 3.3.0 based on Apache Kafka 4.3.1
    • Adds projection-aware data retrieve (#719)
  • MASES.EntityFrameworkCore.KNet.Serialization:
    • Updates IValueContainerMetadata adding FullFlattenedProperties beside FlattenedProperties which contains projection properties
    • Review DefaultValueContainer to support #719
  • MASES.EntityFrameworkCore.KNet.Serialization.Avro:
    • Review AvroValueContainer to support #719
    • Updates Apache.Avro version
    • Adds custom AvroValueContainer codec to reduce boxing (#679)
  • MASES.EntityFrameworkCore.KNet.Serialization.Avro.Compiler: no changes
  • MASES.EntityFrameworkCore.KNet.Serialization.Protobuf:
    • Review ProtobufValueContainer to support #719
    • Updates Google.Protobuf version
  • MASES.EntityFrameworkCore.KNet.Templates: no changes
  • Documentation: aligns to the new architecture; adds backend compatibility reference
  • Tests: general improvements; updates complex type tests

Official NuGet packages (*)

(*) packages are also available on GitHub packages.

What's Changed

Full Changelog: V4.0.0.0...V4.1.0.0

V3.1.0: updates to KNet 2.9.13 adding projection-aware data retrieve

Choose a tag to compare

@masesdevelopers masesdevelopers released this 28 Aug 16:50
a7db945

Caution

KEFCore 3.1.0 is a complete architectural rewrite. Existing code targeting 2.x will require significant updates. See documentation for the migration guide.

Key breaking changes: DatabaseName renamed to TopicPrefix; full rename of methods and classes to be compliant with project name; singleton/context options separation in IKEFCoreSingletonOptions; PreserveStreamsAcrossContexts removed; ApplicationId, StreamsConfig and ProducerConfig promoted to singleton scope; IEntityTypeProducer replaced by IStreamsChangeManager; EntityState moved from IValueContainer into IKEFCoreRowBag.

Internal benchmarks (100-iteration test suite) show overall query execution time improving roughly 2x without the new value buffer caching, and roughly 7x with caching enabled, compared to the 2.6.7 baseline — with some query patterns improving by 10x or more. This is a combined result of KEFCore's new caching architecture and the underlying JNet/JCOBridge evolution from 2.6.8 to 2.6.9.

This is a major release of Entity Framework Core provider for Apache Kafka, available for Entity Framework Core 8, 9 and 10, based on KNet version 2.9.13, on top of Apache Kafka 3.9.2.

Entity Framework Core provider for Apache Kafka comes with the following changes:

  • MASES.EntityFrameworkCore.KNet:
    • Updates to KNet version 2.9.13 based on Apache Kafka 3.9.2
    • Adds projection-aware data retrieve (#719)
  • MASES.EntityFrameworkCore.KNet.Serialization:
    • Updates IValueContainerMetadata adding FullFlattenedProperties beside FlattenedProperties which contains projection properties
    • Review DefaultValueContainer to support #719
  • MASES.EntityFrameworkCore.KNet.Serialization.Avro:
    • Review AvroValueContainer to support #719
    • Updates Apache.Avro version
    • Adds custom AvroValueContainer codec to reduce boxing (#679)
  • MASES.EntityFrameworkCore.KNet.Serialization.Avro.Compiler: no changes
  • MASES.EntityFrameworkCore.KNet.Serialization.Protobuf:
    • Review ProtobufValueContainer to support #719
    • Updates Google.Protobuf version
  • MASES.EntityFrameworkCore.KNet.Templates: no changes
  • Documentation: aligns to the new architecture; adds backend compatibility reference
  • Tests: general improvements; updates complex type tests

Official NuGet packages (*)

(*) packages are also available on GitHub packages.

What's Changed

Full Changelog: V3.0.0.0...V3.1.0.0

V4.0.0: complete reengineering based on KNet 3.2.3 and JNet 2.6.9

Choose a tag to compare

@masesdevelopers masesdevelopers released this 17 Jun 04:39
a88b890

Caution

KEFCore 4.0.0 is a complete architectural rewrite. Existing code targeting 2.x will require significant updates. See documentation for the migration guide.

Key breaking changes: DatabaseName renamed to TopicPrefix; full rename of methods and classes to be compliant with project name; singleton/context options separation in IKEFCoreSingletonOptions; PreserveStreamsAcrossContexts removed; ApplicationId, StreamsConfig and ProducerConfig promoted to singleton scope; IEntityTypeProducer replaced by IStreamsChangeManager; EntityState moved from IValueContainer into IKEFCoreRowBag.

Internal benchmarks (100-iteration test suite) show overall query execution time improving roughly 2x without the new value buffer caching, and roughly 7x with caching enabled, compared to the 2.6.7 baseline — with some query patterns improving by 10x or more. This is a combined result of KEFCore's new caching architecture and the underlying JNet/JCOBridge evolution from 2.6.8 to 2.6.9.

This is a major release of Entity Framework Core provider for Apache Kafka, available for Entity Framework Core 8, 9 and 10, based on KNet version 3.2.3, on top of Apache Kafka 4.2.1.

Entity Framework Core provider for Apache Kafka comes with the following changes:

  • MASES.EntityFrameworkCore.KNet:
    • Updates to KNet version 3.2.3 based on Apache Kafka 4.2.1
    • Complete rewrite of the per-entity convention system: every aspect of Kafka behavior can now be configured via IModelFinalizingConvention, Attribute, or Fluent API, overriding context-level defaults (topic partitions, replication factor, retention, read-only enforcement, store lookup, SerDes selector, producer tuning)
    • Adds complete complex type support: IComplexTypeConverterFactory for complex type management, flattened property handling in query translation and serializers, complex-type projection and second-level extraction; enforces value equality on ComplexType via KEFCoreComplexTypeConverterConvention and attribute, requiring complex types to implement IEquatable or override Equals for correct comparison; requires Binary as the preferred conversion type on Avro and Protobuf serializers (instead of Text) for correct complex type round-tripping
    • Adds RocksDB, SSL and SASL configuration via Attribute and Fluent API, integrating with KNetRocksDBConfigSetter
    • Introduces KafkaClusterAdmin, separating admin operations from KafkaCluster; ClusterId now depends only on cluster info and is used for service provider matching
    • Introduces StreamsManager factory; removes PreserveStreamsAcrossContexts; streams lifecycle now managed via IStreamsChangeManager replacing IEntityTypeProducer
    • Separates singleton and context-scoped options in IKEFCoreSingletonOptions; promotes ApplicationId, StreamsConfig and ProducerConfig to singleton scope
    • Updates the Streams uncaught exception handler to detect StreamsException errors related to TimestampExtractor and attempt thread replacement (StreamThreadExceptionResponse.REPLACE_THREAD) instead of shutting down the application; adds explicit, deterministic handling of all KafkaStreams states in StreamsManager (PENDING_ERROR, PENDING_SHUTDOWN, ERROR, NOT_RUNNING, RUNNING) with a documented state diagram; adds a retrying GetIterator helper in KNetStreamsRetriever and KafkaStreamsBaseRetriever to recover from InvalidStateStoreException while the stream thread is STARTING, with cancellation support
    • Adds Kafka transactional producer with exactly-once semantics, async transactions, commit callbacks and future management
    • Adds in-memory value buffer caching for entity types with background population on partial enumeration
    • Implements Find behavior directly via the backend; updates the EF Core tracker directly when the backend reloads
    • Adds IValueGeneratorSelector support, threaded through cluster creation (IKafkaClusterCache.CreateCluster, KafkaCluster constructor) and exposed on IKafkaCluster; renames IKafkaIntegerValueGenerator to IKafkaValueGenerator and adds DateTime/DateTimeOffset generators; updates change detection in KafkaStateHelper to correctly treat a null value arriving from Kafka against a non-null current row value as a real change when bumping generators
    • Adds ResetStreams API; refactors topic handling to avoid Kafka Streams reset when persistent storage is in use
    • Renames DatabaseName to TopicPrefix; propagates TopicPrefix annotation along the full configuration chain
    • Adds infrastructure logger to KafkaCluster
    • Uses producer Send API with managed callback lifecycle
    • Adds optional RecyclableMemoryStream integration
    • Adds TranslateRightJoin support for EF Core 10
    • Validates topic ACLs and partition rules on startup
    • Removes Activator.CreateInstance from hot path
    • Improves resource disposal throughout: iterators, event data types, disposable object patterns
    • Full rename of methods and classes to be compliant with project name
  • MASES.EntityFrameworkCore.KNet.Serialization:
    • Introduces IValueContainerData, moving EntityState out of IValueContainer and into IKEFCoreRowBag
    • Revises IValueContainer
    • Adds optional parameters to IValueContainerMetadata
    • Adds IsComplex helper method, used across serializers
  • MASES.EntityFrameworkCore.KNet.Serialization.Avro:
    • Updates header serialization to use AddVoid
    • Centralizes type conversion for managed types of Avro SerDes
  • MASES.EntityFrameworkCore.KNet.Serialization.Avro.Compiler: no changes
  • MASES.EntityFrameworkCore.KNet.Serialization.Protobuf:
    • Updates header serialization to use AddVoid
    • Updates Google.Protobuf version
  • MASES.EntityFrameworkCore.KNet.Templates: no changes
  • Documentation: aligns to the new architecture; adds backend compatibility reference
  • Tests: general improvements; adds complex type tests

Official NuGet packages (*)

(*) packages are also available on GitHub packages.

What's Changed

Read more