trendyol / confluent.kafka Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
We should integrate a distributed continuous integration service like AppVeyor.
Rename Project to libdgckafka.
Currently, AddKafkaConsumer
extension method is overloaded and accepting a lot of different parameters. One solution is builder pattern but I think it will be easier to provide a KafkaConfig
class and expect it in AddKafkaConsumer
method to provide extra configuration of kafka clusters, brokers, producers and consumers.
We shouldn't produce event to main topic in case of failure because other consumers in other domains can listen to our main topic.
We should add Docker support.
As of now,
We can support for Serializer/Deserializer for types TKey
and TValue
for the type that derives from KafkaConsumer
.
Provide .NET docs and heavily comment the code for better understanding why we're doing what we're doing.
Nullable reference types are very helpful in preventing bugs and NullReferenceExceptions
from occurring.
Producing failed messages back to main topic can cause many confusions in other consumers that are successfully parsing and processing messages. In addition, there will be multiple processing of messages in other consumer groups that are listening to the same topic.
Built-in support for Retry consumer will fix these issues. Producing unprocessed messages to retry topic and periodically consuming those messages is one strategy.
We need to run a test to see whether _retryConsumer
works.
Setup some CI/CD pipeline to run nuget publish for every commit in master branch.
Begin by adding a Unit Tests Project and adding tests for MessageExtensions
.
Currently, KafkaConsumer deserializes messages in UTF8 string format.
We could support deserialization/serialization of complex types.
Example:
public class ProductConsumer : KafkaConsumer<Ignore, Product>
{
// ...
}
Currently we have many overloaded constructors in ServiceCollectionExtensions
. We can provide ease of use with builder pattern or options parameter.
Example:
services.AddKafkaConsumer(options => {
options.Topic("topic");
options.RetryTopic("retry-topic");
options.BootstrapServers("my-bootstrap-servers");
})
// Or like this:
services.AddKafkaConsumer()
.Topic("topic")
.RetryTopic("retry-topic")
.MaxRetryCount(5);
We should support both serialization/deserialization of custom types using JSON format. (Other formats can be provided in the future)
We should also support string serialization/deserialization in UTF8 format. (Other formats can be provided in the future)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.