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.