flyteorg / flyte

Scalable and flexible workflow orchestration platform that seamlessly unifies data, ML and analytics stacks.
https://flyte.org
Apache License 2.0
5.78k stars 659 forks source link

[Core feature] Add Kafka support for workflow notifications #4323

Open devictr opened 1 year ago

devictr commented 1 year ago

Motivation: Why do you think this is important?

Notifications only support AWS and GCP for the moment. My company is on Azure and would benefit from having notifications as well. It seems like Flyte uses gizmo for this, which only supports AWS, GCP, Kafka and HTTP.

Adding Kafka support would benefit Azure deployments, but also on-premise or other deployments that already have Kafka setups internally.

Goal: What should the final outcome look like, ideally?

I want to be able to configure Kafka for workflow notifications.

Describe alternatives you've considered

Alternatives: HTTP support from gizmo. This feature doesn't exclude HTTP support from being added in the future.

Propose: Link/Inline OR Additional context

Code: https://github.com/flyteorg/flyte/blob/b30cb723afc7c966516c8460f7a82246b068bea4/flyteadmin/pkg/async/notifications/factory.go#L95-L147

Are you sure this issue hasn't been raised already?

Have you read the Code of Conduct?

Future-Outlier commented 1 year ago

I added the sandbox email publisher 3 months ago. If you need help, feel free to collaborate with me. PR Link: https://github.com/flyteorg/flyteadmin/pull/595

devictr commented 1 year ago

Thanks @Future-Outlier!

devictr commented 1 year ago

@pingsutw, any preference as to where to store Kafka offsets? Since this is flyteadmin, maybe I can create a table in postgres for that?

devictr commented 1 year ago

Actually, seems like we use Sarama behind the scenes, which supports auto commit and is enabled by default: https://github.com/IBM/sarama/blob/main/config.go#L427

davidmirror-ops commented 2 months ago

with gizmo on maintenance mode do we still consider following their http route?

eapolinario commented 2 months ago

We talked offline about this and the conclusion is that we're not married to gizmo. We'd welcome a PR that brings in another dependency to implement Azure workflow notifications.

Sovietaced commented 2 weeks ago

We have an implementation of this internally that we could potentially upstream.