Skip to content

A set of open source .NET libraries designed to make Confluent.Kafka easier to use by leveraging best patterns and practices. It is also a framework for building pub/sub batch processing applications.

License

Notifications You must be signed in to change notification settings

epam/epam-kafka

Repository files navigation

Epam Kafka

Set of .NET libraries aimed to simplify Confluent.Kafka usage by leveraging best patterns and practices. Also it is a framework for building pub/sub batch processing applications.

Features

  • Abstraction to create various kafka related objects with fluent configuration in IServiceCollection.
  • Options pattern implementation for consumer, producer, client, and schema registry configs.
  • Hosted service to read/write data from/to kafka with following features:
    • Processing in batches.
    • Retry mechanism for batch and for entire pipeline.
    • Parallel and sequential processing configuration.
    • Health checks.
    • System.Diagnostics.Metrics for key operations.
    • Delayed start, ability to wait for dependencies (e.g. database migrations).

Subscription specific

  • Subscribe and internal offsets (default): kafka internal offsets storage. Partition assignment performed by group’s coordinator kafka broker.
  • Subscribe and external offsets: IExternalOffsetsStorage interface implementation for offsets storage. Partition assignment performed by group’s coordinator kafka broker.
  • Assign and external offsets: IExternalOffsetsStorage interface implementation for offsets storage. Partition assigmnent based on configuration.
  • Default implementation for IExternalOffsetsStorage using EntityFramework (Core and EF6).
  • Default implementation for subscription that store data using EntityFramework (Core and EF6). Possibility to commit data and offsets in same database transaction.
  • Default implementation for subscription that consume data from kafka, then process it, and finally publish result to kafka. In case of kafka internal offsets storage and publishing to same cluster from which data was consumed it is possible to update offsets and publish result in same transaction.

Publication specific

  • Default implementation to publish data from EntityFramework (Core and EF6) context.
  • Support for transactional producers.

Samples

Packages

License

MIT

About

A set of open source .NET libraries designed to make Confluent.Kafka easier to use by leveraging best patterns and practices. It is also a framework for building pub/sub batch processing applications.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •