Skip to content

Commit af20c9d

Browse files
brownjuly2003-codeJuliaEdomclaude
authored
chore(flink): align the container runtime with the pinned 2.3.0 extra (#168)
pyproject pinned apache-flink==2.3.0 while every container ran 2.2.1 (flink_jobs image ARG + both flink:2.2.1-java17 cluster images), so local development could exercise behaviour absent from the deployed minor. Runtime moves to 2.3.0. The Kafka connector stays 5.0.0-2.2: the externalised connector is versioned <connector>-<flink minor> and no -2.3 artifact is published; @public API is stable within a Flink major, and flink-smoke submits the real job to a real cluster on every PR, so the pairing is asserted, not assumed. Documented at the ARG. docs/architecture.md Technology Choices reads Flink 2.3. Historical records keep the version they were measured on. Closes F2 of the 07.07 audit (plan_07_07_26.md, S2). Co-authored-by: JuliaEdom <uedomskikh@gmail.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent fa166f5 commit af20c9d

4 files changed

Lines changed: 34 additions & 4 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,32 @@ All notable changes to AgentFlow are documented in this file.
44

55
## [Unreleased]
66

7+
### Changed — one Flink version across pip extra and container runtime (audit 07.07 F2)
8+
9+
- **The Docker runtime moves 2.2.1 → 2.3.0**, matching the `[flink]` extra
10+
(`apache-flink==2.3.0`, bumped in #87 and smoke-validated since): the
11+
`flink_jobs` image ARG (`FLINK_VERSION`, which also drives the pip install
12+
and the `flink-s3-fs-hadoop` plugin symlink) and both official cluster
13+
images in `docker-compose.yml` (`flink:2.3.0-java17`). Developing locally
14+
against a 2.3.0 PyFlink while the cluster ran 2.2.1 could surface behaviour
15+
that did not exist on the deployed minor; the two lines are now one.
16+
- **The Kafka connector stays `flink-sql-connector-kafka-5.0.0-2.2`** — the
17+
externalised connector is versioned `<connector>-<flink minor>` and no
18+
`-2.3` build is published. Flink keeps `@Public` API stable within a major,
19+
so the 2.2 artifact runs on a 2.3 cluster; the Dockerfile says so, and
20+
`flink-smoke` submits `stream_processor.py` to a real Kafka+MinIO+Flink
21+
cluster on every PR, so the combination is asserted rather than assumed.
22+
- `docs/architecture.md` Technology Choices now reads Flink 2.3. Historical
23+
records (CHANGELOG entries, `docs/perf/freshness-realpath-2026-06-30.md`)
24+
keep the version they were measured on.
25+
26+
### Changed — the published SDK is under the same lint gate as `src/` (audit 07.07 F1)
27+
28+
- `ci.yml` runs `ruff check` and `ruff format --check` over `sdk/` as well;
29+
the one-off reformat touched `async_client.py`, `cli.py`, `client.py`
30+
(line-collapse only). `make lint` / `make format` now cover
31+
`src/ tests/ scripts/ sdk/`, so local and CI agree.
32+
733
## [2.0.0] - 2026-07-06
834

935
### Fixed — single-container demo deploys pin the DuckDB serving backend (G2 S7, 2026-07-06)

‎docker-compose.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ services:
4747
4848
# ── Flink ─────────────────────────────────────────────────────
4949
flink-jobmanager:
50-
image: flink:2.2.1-java17
50+
image: flink:2.3.0-java17
5151
ports:
5252
- "8081:8081"
5353
command: jobmanager
@@ -73,7 +73,7 @@ services:
7373
retries: 5
7474

7575
flink-taskmanager:
76-
image: flink:2.2.1-java17
76+
image: flink:2.3.0-java17
7777
depends_on:
7878
flink-jobmanager:
7979
condition: service_healthy

‎docs/architecture.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ See [Architecture Decision Records](decisions/) for detailed trade-off analysis.
9595
|-----------|--------|-----------|-------------------|
9696
| Streaming | Kafka 3.7 (KRaft) | Pulsar | Ecosystem maturity, MSK managed service |
9797
| CDC capture | Debezium + Kafka Connect | Python-native connectors | Mature Postgres/MySQL CDC, built-in offsets/schema history, one ops model |
98-
| Processing | Flink 2.2 | Spark Structured Streaming | True event-time, lower latency, native watermarks |
98+
| Processing | Flink 2.3 | Spark Structured Streaming | True event-time, lower latency, native watermarks |
9999
| Storage | Iceberg 1.5 | Delta Lake | Vendor-neutral, hidden partitioning, time-travel |
100100
| Local query | DuckDB | SQLite | Columnar, fast analytics, Iceberg support |
101101
| Orchestration | Dagster | Airflow | Software-defined assets, better testing, type safety |

‎src/processing/flink_jobs/Dockerfile‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
FROM python:3.11-slim-bookworm@sha256:721dc13fd1be0a771e54b72097634291d628d0007dee9da777e2ce676a9c998f
22

3-
ARG FLINK_VERSION=2.2.1
3+
ARG FLINK_VERSION=2.3.0
44
ARG SCALA_VERSION=2.12
5+
# The externalised Kafka connector is versioned <connector>-<flink minor> and
6+
# its newest published build is 5.0.0-2.2 — there is no -2.3 artifact. Flink
7+
# keeps @Public API stable inside a major, so the 2.2 build runs on a 2.3
8+
# cluster; flink-smoke submits the real job against it to keep that honest.
59
ARG PYFLINK_KAFKA_JAR_VERSION=5.0.0-2.2
610

711
RUN apt-get update \

0 commit comments

Comments
 (0)