About this project

KEFCore provides an Entity Framework Core provider for Apache Kafka, allowing .NET applications to leverage Kafka topics as a data store. It integrates seamlessly with the standard EF Core programming model, including `DbContext`, LINQ queries, and strongly-typed entities. Developers can switch their application's data backend from traditional relational databases to Apache Kafka by changing a single line in their `DbContext` configuration, eliminating the need for Kafka-specific consumer or producer code. The project is built upon KNet client-side features, which directly utilize official Apache Kafka Java client packages via JCOBridge. This architecture ensures compatibility with any broker that implements the Kafka wire protocol, such as Redpanda, Amazon MSK, Confluent Platform, and others. KEFCore supports various serialization formats, including JSON, Avro, and Protobuf, through dedicated NuGet packages. It maintains compatibility across different versions of Apache Kafka, .NET, and JVM. JCOBridge, the underlying technology, allows the JVM and CLR (or CoreCLR) to run within the same process while remaining insulated, providing direct and secure access to JVM functionalities from any .NET application. This approach ensures that .NET applications inherit the cyber-security levels of the running JVM and Apache Kafka, and allows direct management of any Java/Scala class behind Apache Kafka without needing to learn new APIs. KEFCore is an open-source project curated by MASES Group, offering community and commercial support plans. Documentation covers aspects like getting started, how it works, supported backends, usage, serialization, schema migration, performance tips, and troubleshooting.