/statefun-go

Golang SDK for Apache Flink Stateful Functions

Primary LanguageGoApache License 2.0Apache-2.0

Statefun Go SDK

Stateful Functions is an API that simplifies the building of distributed stateful applications with a runtime built for serverless architectures. It brings together the benefits of stateful stream processing, the processing of large datasets with low latency and bounded resource constraints, along with a runtime for modeling stateful entities that supports location transparency, concurrency, scaling, and resiliency.

It is designed to work with modern architectures, like cloud-native deployments and popular event-driven FaaS platforms like AWS Lambda and KNative, and to provide out-of-the-box consistent state and messaging while preserving the serverless experience and elasticity of these platforms.

Background

The JVM-based Stateful Functions implementation has a RequestReply extension (a protocol and an implementation) that allows calling into any HTTP endpoint that implements that protocol. Although it is possible to implement this protocol independently, this is a minimal library for the Go programing language that:

  • Allows users to define and declare their functions in a convenient way.
  • Dispatches an invocation request sent from the JVM to the appropriate function previously declared.

See the Apache Flink Stateful Functions website for more information about the project.

See greeter example for an end to end demonstration.

WARNING This library is still in alpha and developers reserve the right to make breaking changes to the api.