Dan Pettersson created FLINK-16319:
--------------------------------------
Summary: Pubsub-/Broadcast implementation
Key: FLINK-16319
URL:
https://issues.apache.org/jira/browse/FLINK-16319 Project: Flink
Issue Type: Improvement
Components: Stateful Functions
Reporter: Dan Pettersson
Hi everyone,
I have a use case where the id of the functions are brokerId + instrumentId that receives trades and orders. The instrument has state changes (Open, halted, closed etc) that almost all the functions are interested in. Some functions only wants for example the Close message whereas other functions wants all state changes for the specific instrument.
I've built a statefun pubsub module that exposes two interfaces, Subscriber and Publisher, with these two methods:
default void subscribe(Context context, Subscription... subscriptions)
default void publish(Context context, PublishMessage publishMessage)
Behind the interfaces is a hidden StatefulPubSubFunction that keeps track of which partition the subscriber is located in and to which topic it listens to.
Code is located under [
https://github.com/danp11/flink-statefun/tree/master/statefun-pubsub] if anyone is interested.
This code is a "classic pub sub" pattern and I think that this kind of functionality would be a great addition to Stateful functions. I create this Jira to see if there is an interest to discuss how a optimal pubsub-/broadcast solution would look like in SF? Igal has previously mentioned that Broadcast could be a good fit for this kind of flow.
At the moment I don't know the internals of SF and-/or Flink good enough to come up with a proposal myself unfortunately.
I know you are very busy at the moment (Its impressive how much you have produced only the last couple of weeks!:-) but if someone, on a high level, has any ideas on where and how a pub sub pattern could be implemented I'd really appreciate it. In the future I hope we can come up with a proposal together as I need your help here. If you think that a pubsub-/broadcast solution would make SF better that is :-)
Hope to hear your thoughts on this!
Thanks,
/Dan
--
This message was sent by Atlassian Jira
(v8.3.4#803005)