Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PoC] Adding Kafka as Event Publishing Alternative to Rabbit #791

Closed
wants to merge 11 commits into from

Conversation

Herlitzd
Copy link

@Herlitzd Herlitzd commented Aug 26, 2020

Related #465

Added an integration with Kafka using the Confluent.Kafka package.

I heavily followed the patterns established from the RabbitMq integration. At the moment, my testing has been limited to the integration testing that is included with this PR.

I would love to get some feedback, and discuss any changes that would need to be made in order for this integration to move forward.

Notes

  • Due to the complexity of the Kafka configuration, I am leaking the Producer Configuration object out through the IEventFlowOptions builder:
    .PublishToKafka(new ProducerConfig { })
    
  • In order to allow consumers to customize their partitioning scheme I am allowing the Kafka publisher to be configured with an optional Func<IDomainEvent, TopicPartition> topicPartitionFactory

Edit: Looks like the integration test is timing out, unfortunately a Kafka broker doesn't expose any kind of meaningful health check, at least not without adding a third container for diagnostics. I can try to crank up the timeout in the integration test, but I would rather not burn through your CI time if there are more structural concerns with this change to address first.

@ahernandez-allegion
Copy link

I'll be following this and may have my team take a look. Thanks for taking a stab at it.

@Herlitzd Herlitzd closed this Mar 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants