# flink-udf

> Claude/Codex skill by [@confluentinc](https://omgskills.com/library/confluentinc/index.md) · 59 stars · Updated 2026-10-06

Build and deploy Apache Flink user-defined functions (UDFs) in Java for stream processing over Kafka. Use this skill when users want to create scalar UDFs, user-defined table functions (UDTFs), or process table functions (PTFs) in Java, deploy them to Confluent Cloud or local Docker environments, and invoke them from Flink SQL or the Table API. Trigger on: Flink UDF, custom Flink function, process table function, PTF, UDTF, Flink user defined, extend Flink SQL, stateful stream processing with Flink. Do NOT trigger for: Kafka Streams UDFs (use kafka-streams-programming skill), general Flink job development without custom functions, CDC streaming data piplines that include Flink (prefer the confluent-cloud-cdc-tableflow skill), Flink connector setup, or Kafka producer/consumer code.

Tags: ai, cdc, confluent, confluent-cloud, flink, flinksql, kafka, kafka-streams, skills

## Install

```sh
git clone https://github.com/confluentinc/agent-skills /tmp/agent-skills && ln -s /tmp/agent-skills/skills/flink-udf ~/.claude/skills/flink-udf
```

## From README

Flink User-Defined Functions (UDFs) Build and deploy custom functions in Java for Apache Flink to extend SQL and Table API capabilities with custom logic. Function Types Before proceeding, identify which type of function the user needs: Scalar UDF: Maps input values to a single output value (e.g., custom hash, string manipulation, calculations) User-Defined Table Function (UDTF): Maps input to multiple output rows (e.g., split strings, explode arrays) Process Table Function (PTF): Advanced stateful processing with N-to-M semantics, managed state, and timers (e.g., windowing, deduplication, state machines) Gather Requirements Ask the user these questions to determine the implementation path (if not already clear from context): Deployment target: Confluent Cloud or local Docker? Infrastructure: Deploy new infrastructure (Kafka + Flink) or use existing? Invocation method: Flink SQL or Table API?

## Links

- HTML page: https://omgskills.com/library/confluentinc/agent-skills/skills/flink-udf/
- GitHub: https://github.com/confluentinc/agent-skills
- Author: [@confluentinc](https://omgskills.com/library/confluentinc/index.md)

## More from this repo

- [confluent-cloud-cdc-tableflow](https://omgskills.com/library/confluentinc/agent-skills/skills/confluent-cloud-cdc-tableflow/index.md) — Set up end-to-end Change Data Capture (CDC) pipelines on Confluent Cloud using Debezium source connectors, Flink for...
   - [@confluentinc](https://omgskills.com/library/confluentinc/index.md) · 59 stars
- [confluent-cloud-flink-sql](https://omgskills.com/library/confluentinc/agent-skills/skills/confluent-cloud-flink-sql/index.md) — Used to write and debug Flink SQL that runs on Confluent Cloud, enforcing the CC-vs-Apache-Flink (OSS) dialect boundary.
   - [@confluentinc](https://omgskills.com/library/confluentinc/index.md) · 59 stars
- [confluent-tuning-advisor](https://omgskills.com/library/confluentinc/agent-skills/skills/confluent-tuning-advisor/index.md) — Advisory-only Kafka tuning for Confluent Cloud or Confluent Platform by priority: latency, throughput, availability, or...
   - [@confluentinc](https://omgskills.com/library/confluentinc/index.md) · 59 stars
