Hi! Dawid is right, there currently is no developer documentation for the remote request-reply protocol. One reason for this is that the protocol isn't considered a fully stable user-facing interface yet, and thus not yet properly advertised in the documentation. However, there are plans to revisit it and announce it as publicly stable in the near future releases.
In the meantime, the Python SDK and Aljoscha's Rust SDK are good reference examples of implementation of the protocol across different languages. The request body from Flink and expected response body from functions are essentially these [1] Protobuf messages, ToFunction (request) and FromFunction (response). If you bump into any issues when implementing, please feel free to let us know on the mailing lists as well. A Haskell SDK is definitely interesting to see implemented :) Cheers, Gordon [1] https://github.com/apache/flink-statefun/blob/master/statefun-flink/statefun-flink-core/src/main/protobuf/http-function.proto On Mon, Sep 14, 2020 at 3:46 PM Dawid Wysakowicz <dwysakow...@apache.org> wrote: > Hi, > > Not sure if there is a "developer" documentation for the protocol. I am > cc'ing Igal and Gordon who know better than I if there is one. > > To give you some hints though. If I am correct the Python API is > implemented as a so called remote functions [1][2], which communicate > with Flink via HTTP/gRPC. Besides the bundled Python API you can also > use a Rust SDK[3] implemented by my colleague Aljoscha as a reference. > > BTW, it would be really cool to see an SDK written in Haskell ;) > > Best, > > Dawid > > [1] > > https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.1/concepts/distributed_architecture.html#remote-functions > > [2] > > https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.1/sdk/modules.html#remote-module > > [3] https://github.com/aljoscha/statefun-rust > > On 12/09/2020 07:26, Timothy Bess wrote: > > The flink stateful function Python API looks cool, but is there a > > documented spec for how it communicates with Flink? I'd like to > > implement an SDK in Haskell if I can. > >