Skip to main content

Bassirah Technology

APACHE FLINK · INDEPENDENT ENGINEERING

Stateful Streams, Engineered to Recover.

Assess, design and operate self-managed Apache Flink for continuous processing, with state, checkpoints and upgrades tested against your own jobs before they reach production.

Independent Apache Flink engineering.

These are independent Bassirah engineering and support offerings. They do not imply upstream vendor or foundation endorsement, official vendor support rights, enterprise feature entitlement or maintenance guarantees.

Apache Flink, Flink and the Flink logo are trademarks of The Apache Software Foundation. Apache is a trademark of The Apache Software Foundation.

Supported releases.

Apache Flink is a project of The Apache Software Foundation, released under the Apache License 2.0. Bassirah provides independent engineering for the Flink 2.3 and Flink 2.2 release lines, and for the Flink 1.20 line that the project labels LTS, and plans upgrades from earlier lines. The exact versions in scope are named in each statement of work. Last reviewed: 26 October 2026.

Release information from the Apache Flink downloads page, accessed 26 October 2026. Under the project's update policy, the current and the previous minor release receive bugfixes for critical issues, and the line that loses support gets one final bugfix release. The Flink community decides when releases are made; the project publishes no end-of-life dates.
Release lineStatus on 26 October 2026How Bassirah treats it
Flink 2.3Latest stable release: 2.3.0, 25 June 2026Default target for new deployments and upgrades, once the connectors you depend on list support for it
Flink 2.2Previous minor release; latest 2.2.1, 15 May 2026Supported; plan the move to 2.3 within the community's support window
Flink 2.1 and 2.0Older 2.x lines; latest 2.1.3 (14 June 2026) and 2.0.2 (11 May 2026)Upgrade planning to 2.2 or 2.3
Flink 1.20 (LTS)Labeled LTS in the project's documentation; latest 1.20.5, 3 June 2026Supported while you plan the major upgrade to 2.x; no end date is published by the project
Flink 1.19 and earlierLast 1.19 release 1.19.3, 10 July 2025Upgrade assessment: move to 1.20 first or plan a direct move to 2.x

WHY IT MATTERS

Continuous Processing. Durable State. Different Failure Modes.

Apache Flink is a distributed engine for stateful computations over unbounded and bounded data streams. It lets teams filter, join, aggregate and enrich events as they arrive, instead of waiting for the next batch.

The engine keeps state for each job, such as windows, counters and joined records, and takes periodic checkpoints of that state to durable storage. After a failure, a job restarts from its last completed checkpoint, so results stay consistent. That design moves the hard problems into state size, checkpoint behavior, event-time handling, backpressure and upgrades. The 2.x line also changed APIs, configuration and serialization, and the project does not promise state compatibility between 1.x and 2.x. Bassirah tests these behaviors with your own jobs and data before you commit, and engineers the platform so that it holds up in production.

Abstract illustration of engineers reviewing a continuous data stream

WHAT BASSIRAH DELIVERS

Independent Apache Flink Engineering and Operations

  • Fit and architecture — Assess whether stream processing fits the workload, then design jobs, deployment mode, state backends, checkpoint storage and high availability.
  • Deployment — Deploy self-managed Flink on Kubernetes, with the Apache Flink Kubernetes Operator where it fits, or on YARN or standalone clusters, with configuration under version control.
  • Job engineering — Review and build DataStream, Table API and Flink SQL jobs, including event time, watermarks, operator IDs and connector choices.
  • State, checkpoints and HA — Size state, tune checkpoints and savepoints, and design JobManager high availability and recovery that is tested, not assumed.
  • Security — TLS, authentication to sources and sinks, secrets handling and access to the web UI and REST API appropriate to your requirements.
  • Upgrades — Patch and minor upgrades through savepoints, and planned major upgrades from Flink 1.x to 2.x, including API, configuration and state changes.
  • Observability — Metrics for checkpoints, backpressure, lag, restarts and resource use, with actionable alerts.
  • Troubleshooting and managed support — Incident troubleshooting, health reviews of existing jobs and clusters and, where you want it, contracted operations under an agreed scope.

FIT FIRST

When Stateful Stream Processing Earns Its Complexity

A stream processing engine adds moving parts. We recommend Apache Flink when the workload needs what it provides, and we say so when a simpler consumer or a scheduled batch job is enough.

When Stateful Stream Processing Earns Its Complexity
RequirementApache Flink is worth evaluating when…A simpler option is often enough when…
FreshnessResults must update continuously as events arriveResults refreshed on a schedule meet the business need
StateJobs must join streams, keep windows or track per-key state over timeEach event can be handled on its own, without memory of earlier events
Time semanticsResults must follow event time, including late and out-of-order eventsProcessing time is good enough for the result
Consistency on failureState and results must stay consistent after a restart, with checkpoints to durable storageReprocessing or occasional duplicates are acceptable and easy to handle
OperationsYour team, or a contracted provider, will operate a distributed, stateful systemYou want the smallest possible operational footprint

Batch-first or mixed workloads? See our Apache Spark engineering page. Moving events between systems without heavy processing? See Apache Kafka. We test each option against your workload before recommending one.

STATE AND RECOVERY

Checkpoints and Recovery, Chosen Deliberately

Flink keeps job state in a state backend, writes checkpoints to durable storage and can recover a failed JobManager through its high availability services. Savepoints, taken on demand, carry state across upgrades and changes. Each choice trades cost, recovery behavior and operational effort differently. We choose them per job, then prove the effect of a TaskManager, JobManager or zone failure in tested recovery exercises against objectives you approve.

Checkpoints and Recovery, Chosen Deliberately
DecisionTypical approachTrade-off we make explicit
State backendHashMap state on the heap for small state; RocksDB on local disk for large state; the disaggregated ForSt backend only after testing, as the project marks it experimentalMemory use and access speed vs. state size and checkpoint behavior
CheckpointsPeriodic checkpoints to object storage or a distributed file system, with interval and timeouts set per jobRecovery point and restart work vs. checkpoint overhead on the running job
SavepointsSavepoints before every upgrade or job change, with explicit operator IDs so state maps back to operatorsUpgrade safety vs. the discipline of keeping IDs and state types stable
JobManager availabilityKubernetes or ZooKeeper high availability services, with HA metadata on durable storageFewer interruptions from JobManager loss vs. extra components to operate
Restarts and rescalingRestart strategies and parallelism set per job, with rescaling from checkpoints or savepointsFaster recovery and right-sized jobs vs. reprocessing and state redistribution on restart
Apache Flink topology: events flow from sources through operators on TaskManagers that keep keyed state in a state backend, results flow to sinks, a JobManager with a standby coordinates the job through Kubernetes or ZooKeeper high availability services, and periodic checkpoints and savepoints go to durable storage for restore on restart or upgrade.

Apache Flink job topology, state and recovery

OPERATIONS

Evidence-Led Tuning for Stateful Streaming Jobs

Abstract illustration of stream state saved as checkpoints

State and checkpoints

Size state per operator, choose the state backend and tune checkpoint intervals, timeouts and storage based on measured behavior.

Abstract illustration of a stream split into parallel channels

Backpressure and parallelism

Find the operators that slow a pipeline, then adjust parallelism, partitioning and resources based on evidence.

Abstract illustration of state carried across an upgrade

Upgrades

Savepoint-based upgrades with checks for APIs, connectors and configuration, rehearsed in staging with a rollback decision point.

Abstract illustration of monitoring panels for streaming jobs

Monitoring and alerting

Checkpoint health, backpressure, consumer lag, restarts and resource use with actionable alerts, plus savepoint and restore drills.

UPGRADE AND MIGRATION

Move to Flink 2.x With Traceability and Controlled Risk

Delivered through our migration and modernization practice, for jobs moving from Flink 1.x to 2.x or from other stream processing tools.

  1. InventoryCatalog jobs, APIs used, connectors, state backends and state size, configuration files and Java versions.
  2. Assess compatibilityCheck each job against removed APIs, the move from flink-conf.yaml to config.yaml, connector releases for the target version and serializer changes.
  3. Plan state and testDecide per job whether state can be restored from a savepoint, must be rebuilt from sources or needs a different design, then test functionality and output.
  4. Parallel run and reconcileRun old and new jobs side by side where possible and reconcile results with agreed control checks.
  5. Cut overExecute a rehearsed cutover with explicit rollback decision points, then stabilize and hand over.

Still running Flink 1.x?

Start with a compatibility review of your jobs, connectors and state.

USE CASES

Where Apache Flink Fits

Real-time analytics pipelines

Continuous aggregation and enrichment of event streams before they land in an analytical store for dashboards and alerts.

Event-driven detection

Stateful rules and pattern detection over event streams, such as fraud and risk signals, with results tested against historical data.

Streaming ETL and change data capture

Moving and transforming database changes and events into lakehouse tables and downstream systems as they happen.

SUPPORT ROUTES

Community, Independent Support or a Managed Service

Apache Flink is open source and developed by its community at The Apache Software Foundation. Several companies offer commercial Flink products and services, including Ververica (the Unified Streaming Data Platform, in BYOC and self-managed options), Confluent (Confluent Cloud for Apache Flink, a managed service) and Amazon Web Services (Amazon Managed Service for Apache Flink). Bassirah is not a partner of Ververica, Confluent or Amazon Web Services. We support the open-source project independently and are clear about where our commitments end.

Community, Independent Support or a Managed Service
Decision factorCommunity onlyBassirah independent supportVendor product or managed service
Who operates Apache FlinkYour teamYour team with Bassirah engineering, or Bassirah under a managed scopeThe vendor or cloud provider, or your team with the vendor's platform, under the vendor's terms
Help with incidentsPublic community channels, no response commitmentResponse targets per your agreementVendor support under the vendor's own terms
Code defectsReported by you to the projectReproduced, worked around and reported upstream by BassirahHandled by the vendor under its terms
Upstream fixes and releasesOn the project's timelineOn the project's timeline; we track them, test them and apply them through change controlOn the vendor's release schedule; supported versions and features can differ from open-source Flink
Commercial productsNot includedNot included: Bassirah does not resell or license vendor Flink products or servicesContracted directly with the vendor

If you need a vendor-backed platform or a managed Flink service, that is contracted with the vendor. How cases, severities and response targets work for our independent support is set out in our open-source support model. For fully contracted operations, see Managed Services.

WORKS WITH

Apache Flink in the Wider Portfolio

Apache Flink is one part of our streaming and real-time data practice. We place it alongside event streaming, analytical serving and object storage where each fits, and test every integration first.

Apache Kafka

Durable event streams as a source and sink for Flink jobs, with topic design and consumer behavior tested together.

OSS

ClickHouse

Analytical serving for results that Flink produces, where dashboards need fast queries on fresh data.

Strategic Partner

MinIO AIStor

S3-compatible object storage for checkpoints, savepoints and lakehouse tables, after testing with your Flink version.

Strategic Partner

Managed Services

Contracted operations, monitoring and incident handling for Flink estates.

Apache Flink: Frequently Asked Questions

Yes. Apache Flink is a project of The Apache Software Foundation, released under the Apache License 2.0. Vendor platforms and managed Flink services are separate commercial offerings. Bassirah supports the open-source project and is not endorsed by the ASF or the Flink project.

Not automatically. The project’s release notes say state compatibility between 1.x and 2.x is not assured. Flink 2.0 also removed several APIs and the old flink-conf.yaml file. We review each job and decide whether its state can be restored, must be rebuilt or needs a different design.

When results refreshed on a schedule meet the need, when events can be handled one at a time without state, or when reprocessing is acceptable after a failure. A scheduled batch job or a plain consumer is simpler to operate. See our Apache Spark and Apache Kafka pages.

We work on the Flink 2.3 and 2.2 lines and on the 1.20 line that the project labels LTS, and we plan upgrades from earlier lines. The project gives bugfixes to the current and previous minor releases. The versions in scope are confirmed in each statement of work.

No. Bassirah is not a partner of Ververica, Confluent or Amazon Web Services, and does not provide vendor support, vendor security fixes or vendor escalation. Our services are independent engineering and support, with scope and response targets defined in your agreement. Code fixes and releases follow the project’s timeline. See our support model.

Flink takes periodic checkpoints of job state to durable storage and restarts jobs from the last completed checkpoint. JobManager high availability uses Kubernetes or ZooKeeper services. We design these per job and test the effect of losing a TaskManager, a JobManager or a zone.

Make Stateful Streaming Predictable.

Tell us about your jobs, state and recovery objectives. We will scope a fit assessment and a practical next step.

Real-Time Analytics

HA/DR & Platform Reliability

Migration & Modernization

Open-Source Support Model

Related Insights