Flink SQL Evolution: Handling Custom CDC with Process Table Functions

A presentation at Apache’s Community Over Code 2026 in in Glasgow, UK by Gustavo de Morais

Your database is a stream of changes, but every CDC tool speaks a different dialect, and every system understands only some of them.

The latest Flink 2.3 release bringst the latest Process Table Functions (PTFs) and FLIP-564, which makes it possible to handle custom CDC formats directly in SQL. In short: you can bring your own CDC stream from a database, a streaming tool, or any custom unknown format, process it however you like, and pipe the data to the next system in whatever CDC format you want, all with pure SQL. For the first time, you can also convert stateful updating tables with upserts and retractions into an append-only log. This was made possible by two new built-in Process Table Functions (PTFs): FROM_CHANGELOG and TO_CHANGELOG.

In this talk, we will cover what Changelogs, CDC and Process Table Functions are. Apart from that, we’ll go through the two new changelog processing built-in PTFs and common use cases for using them along with the engine gaps these functions can fill. We will go through how we designed them in Flink, and what users have built with them and what’s coming in the Flink 2.4 release.