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