Skip to content

Decision records

Every significant technical decision in this fork is captured as an Architecture Decision Record (ADR): a short, numbered document describing the context, the decision and its consequences. ADRs are immutable once accepted; a later decision that changes course gets a new ADR that supersedes the old one.

Together with the architecture overview and the differences from Apache StateFun matrix, the ADR log is the map of how this project got to its current shape and why.

Log

# Decision Status Date
0001 Fork Stateful Functions for Flink 2.x Accepted 2026-04
0002 Kafka I/O on Source V2 / Sink V2 Accepted 2026-04
0003 Restore Kinesis I/O, LocalStack-based E2E Accepted 2026-04
0004 Kubernetes-native E2E as the release gate Accepted 2026-04
0005 Kafka record headers via TypedValue metadata Accepted 2026-07
0006 Flink Operator 1.15, flinkVersion v2_2 Accepted 2026-06
0007 Restart-strategy keys without the execution. prefix Accepted 2026-07
0008 Kafka invalid-record handling policy Proposed 2026-07

Writing a new ADR

Copy the structure of any accepted ADR (frontmatter, status table, Context / Decision / Consequences). Number it with the next free index, add it to the table above and to the site navigation, and link it from the relevant row of the differences matrix. Feature pull requests that change architecture or user-facing behavior should include their ADR in the same PR.