Session Preview: Stateful Functions for Stateful Serverless Applications

April 21, 2020 | by Tzu-Li (Gordon) Tai

Stateful Functions, Flink’s newest API and runtime, attempts to solve the problem of building rapidly scalable and resilient distributed stateful applications. Users implement polyglot event-driven functions that can be operated on FaaS solutions, harnessing the serverless benefits for applications such as elasticity and zero-downtime upgrades, all the while efficiently maintaining consistency and fault-tolerance for application state. To find out how Stateful Functions works and what makes the approach unique to application developers, join my session Stateful Functions: Polyglot Event-Driven Functions for Distributed Stateful Applications at the Virtual Flink Forward, April 23, and immerse yourself in the project’s latest advancement towards the world of Stateful Serverless and event-driven applications!


Stateful Functions: Polyglot Event-Driven Functions for Distributed Stateful Applications

Stateful Functions, Apache Flink, Serverless, Flink Forward, Flink, applications

Modern frameworks like Kubernetes and FaaS solutions, such as AWS Lambda and GCP Cloud Functions, have solved most of the challenges of dealing with stateless applications by providing management and operational benefits of serverless deployments. But for stateful applications, we are still struggling with the same issues of data consistency and complex failure semantics since a decade ago. This is rooted in the fact that we are still clinging to the ancient wisdom that state shall be someone else’s problem: just put it in a database! For complex stateful applications, we are still far away from the hassle-free experience of stateless applications.

Stateful Functions 2.0, Apache Flink’s newest API and runtime, attempts to bridge that gap by supporting standalone deployments of functions on serverless solutions, external to the Flink cluster. In this setup, Flink takes the role of an “event-driven database” that handles dynamic and arbitrary messaging between functions and state consistency in a fault tolerant way, while the functions that build up the application logic exist as separate stateless (micro-)services invoked by Flink. These functions simply implement a well-defined request/reply invocation protocol using any language that can set up an HTTP server.

Topics covered 

This talk aims at going through the following topics:

  • Developing a Stateful Functions application: We will do a thorough walkthrough on developing a distributed stateful application with Stateful Functions. This will include a look at the different language SDKs and how to deploy these applications.

  • Seeing stateful serverless in action: One of the most exciting features of the 2.0 release is how the new runtime works seamlessly with FaaS platforms to enable stateful serverless deployments. You’ll get to see this in action in this talk with a demo implemented using Stateful Functions and AWS Lambda!

  • Deep dive into the runtime internals: Join in on a technical deep dive into a look under the hood. What are the key design principles of the runtime? How does the runtime support running an infinite number of function instances? How are the strong consistency semantics and fault-tolerance achieved?


Key takeaways

  • Have a good grip on the core building blocks provided for developing Stateful Functions applications, so that you may start developing your own! This also applies to developers without knowledge of Apache Flink.

  • A good understanding of the runtime and how it runs on top of Apache Flink. With knowledge of the internals and design principles, you should have a better picture of the key benefits provided by Stateful Functions.


We look forward to sharing how the Stateful Functions runtime works and showcasing how you can build a Stateful Functions application using the newly-introduced framework to the Apache Flink project. If you want to get familiar with Stateful Functions and learn more about the ins-and-outs of the technology, make sure to register for the Virtual event on April 22-24.


Flink Forward, Registration, Virtual Event, Apache Flink, stream processing

New call-to-action





About the author: 


Tzu-Li (Gordon) Tai is an Apache Flink PMC and Software Engineer at Ververica. He is currently working on the Stateful Functions project in Apache Flink. In the past, he has contributed to various other parts of the Apache Flink project, including some of the more popular streaming connectors for Flink (Apache Kafka, AWS Kinesis, etc.) as well as several topics surrounding evolvability of stateful Flink streaming applications.


Topics: Flink Forward

Tzu-Li (Gordon) Tai
Article by:

Tzu-Li (Gordon) Tai

Related articles


Sign up for Monthly Blog Notifications

Please send me updates about products and services of Ververica via my e-mail address. Ververica will process my personal data in accordance with the Ververica Privacy Policy.

Our Latest Blogs

by Alexander Fedulov July 09, 2020

Presenting our Streaming Concepts & Introduction to Flink Video Series

Transitioning from the batch data processing world into the world of stream processing and real time analytics can be challenging. Throughout this process, there are many new concepts you need to...

Read More
by Konstantin Knauf July 06, 2020

Announcing Early Access Program for Flink SQL in Ververica Platform

Been wondering what's next for Ververica Platform? Maybe you've already guessed: Flink SQL is coming to Ververica Platform later this year! Today we are excited to announce our Early Access Program

Read More

Data-driven Matchmaking at Azar with Apache Flink

The Hyperconnect team attended Flink Forward for the first time a couple of months back and presented how we utilize Apache Flink to perform real time matchmaking for the video-based social...

Read More