in go/showcase/pkg/showcase/part6/serving.go [49:70]
func main() {
// register the functions that you want to serve...
builder := statefun.StatefulFunctionsBuilder()
if err := builder.WithSpec(UserFnSpec()); err != nil {
log.Fatalf("failed to register user function: %s", err)
}
if err := builder.WithSpec(GreetingSpec()); err != nil {
log.Fatalf("failed to register greeting function: %s", err)
}
// ... and build a request-reply handler for the registered functions, which understands how to
// decode invocation requests dispatched from StateFun / encode side-effects (e.g. state storage
// updates, or invoking other functions) as responses to be handled by StateFun.
handler := builder.AsHandler()
// Use the request-reply handler along with your favorite HTTP web server framework
// to serve the functions!
http.Handle("/", handler)
_ = http.ListenAndServe(":8000", nil)
}