Re: [Statefun] Interaction Protocol for Statefun

2021-03-15 Thread Tzu-Li (Gordon) Tai
Hi,

Interesting idea! Just some initial thoughts and questions, maybe others can
chime in as well.

In general I think the idea of supporting more high-level protocols on top
of the existing StateFun messaging primitives is good.

For example, what probably could be categorized under this effort is, we've
already been thinking about a pub/sub / broadcast / fan-out implementation
with StateFun [1].

As for the DSL specification language for protocols, that definitely sounds
like a stretch goal for the near future.

I'm curious, if you were to start with adding support for one interaction
protocol, which one would you start with and would find most useful for
users?

Cheers,
Gordon

[1] https://issues.apache.org/jira/browse/FLINK-16319



--
Sent from: http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/


[Statefun] Interaction Protocol for Statefun

2021-03-13 Thread Guillaume Vauvert
Hi Statefun folk,

(I already posted this message in the devs mailing list, but as this
feature may be added both as core and as an external package, both
lists are good candidates ...)

Now that we have a powerful framework to manage stateful functions, a part
of the algorithmic complexity has moved on the interaction between
functions side. But implementing an interaction protocol is complex and
error prone, so that could be great to provide an official/supported
library of classical interaction protocol, like (in distributed algorithm)
consensus, election, broadcast, auctions ...

A protocol could define a set of roles, each role implementing the
interaction with other roles, and letting the dev to implement the function
decision part. For example, in an auction protocol, the role "bidder"
manages the interaction with the auctioneer and "ask" the dev to implement
the functions onItemForSale, onNewBidMade and onWinnerSelected.


The next step could be to allow to define any interaction protocol using a
formal specification language, and compile the specification into Statefun.
But that's a long term goal. I found multiple approaches and languages,
more or less expressive/powerful/complex, but I have not started to compare
them.


Have you heard about such work/approach ? Is there an ongoing work in this
direction for Statefun ? What do you think about the proposition itself ?


Thanks !

--

Guillaume Vauvert