RabbitMQ

Apache Flink Support Options: Community, Managed or Independent

Tyler Eastridge

By Tyler Eastridge, Head of Operations

LinkedIn · Updated

Apache Flink has no vendor. Flink support comes from the Apache Flink community for the two most recent minor releases, from the vendors of managed Flink services for their own platforms, and from independent providers for self-managed Flink clusters and the streaming jobs that run on them. For a system that often sits in the path of real-time revenue, that is a thin support story by default.

What the Apache Flink project supports

The project states its policy on the downloads page: the Flink community supports the current and previous minor release with bugfixes. When a new minor version is released, the community performs one final bugfix release for the version that is losing support. At the time of writing Flink 2.3.0 is the latest stable release, and Flink 1.20 is designated the long-term support release for the 1.x line.

With a minor release roughly every few months, a Flink version drops out of community support in well under a year. Flink 1.19 and earlier are unsupported by the project. Community support means the mailing lists, Slack and Jira, with no commitment to respond.

It helps to be clear about what is being supported. Apache Flink is a stream processing framework for stateful computations over data streams, both unbounded and bounded, from the Apache Software Foundation. Flink applications are written against the DataStream API, the Table API or the SQL interface, in Java or in Python with PyFlink, and they usually read from and write to Kafka through Flink connectors. Its defining features are event-time processing, exactly-once state management through checkpoints and savepoints, and high throughput with low latency. Every one of those features is also a way for a job to go wrong, which is why questions on the user mailing list and Stack Overflow are so often about checkpointing and state. Flink committers answer there when they can. It is help, and it is not support.

Managed and commercial Flink

Confluent, Ververica, Amazon Managed Service for Apache Flink and others run Flink as a service or sell a supported platform. They support the runtime: the cluster, checkpoint storage integration, upgrades of their own images. They do not support your job graph. State size, watermark strategy, serialization and connector behaviour are application concerns, and they are where Flink incidents come from.

Why Flink needs a different kind of support

A batch job that fails can be rerun in the morning. A Flink job is a long-running distributed application holding state that may represent days of events, and every restart is a recovery from a checkpoint or savepoint. That changes what support has to be good at. Response time matters more, because lag accumulates every minute the job is down and downstream systems notice. Diagnosis needs people who understand the job graph, not only the cluster, because the same symptom, rising lag, can come from a slow sink, a hot key, a garbage collection problem or a Kafka partition with no traffic. And changes are riskier, since an incompatible state change can force a choice between losing state and reprocessing history. Ask any provider how they handle savepoint compatibility before an upgrade. The answer tells you whether they have done it before.

The Flink incidents that actually page people

  • Checkpoint timeouts. Checkpoints stop completing because state has grown, backpressure delays barrier alignment, or the checkpoint storage is slow. Without a recent checkpoint a restart replays hours of data. Unaligned checkpoints, incremental RocksDB checkpoints and fixing the backpressure source are the usual remedies.
  • Backpressure. One slow operator or sink stalls the whole pipeline. The web UI shows where. Knowing whether the fix is parallelism, a rebalance, async I/O or a sink that needs batching takes experience.
  • Watermarks that stop advancing. An idle Kafka partition holds back the watermark for the whole job, windows never close and results stop with no error at all. Idleness configuration fixes it, once someone recognises the symptom.
  • State that grows forever. Keyed state with no TTL, or a join without bounds, grows until RocksDB fills the disk or memory limits kill the TaskManager.
  • Restarts that lose exactly-once. Savepoint compatibility breaks after an operator was changed without stable UIDs, or a two-phase-commit sink leaves transactions open across a failure. The result is duplicates or gaps downstream.
  • Kubernetes and memory. TaskManager containers are OOMKilled because RocksDB and network buffers use native memory outside the JVM heap, and Flink's memory model was left at defaults.

Moving from Flink 1.x to Flink 2.x

Flink 2.0 was the first major release in years and it removed a great deal that had been deprecated: the DataSet API, the Scala APIs, the legacy source and sink interfaces, and many old configuration keys. It also requires a newer Java version. Jobs written against the DataStream API with the newer source and sink interfaces move most easily. Jobs on the DataSet API need rewriting to DataStream in batch mode or to the Table API. State compatibility across the major version is not guaranteed for every job, so plan for a savepoint-based migration test and, where that fails, a dual-run cutover. Flink 1.20 LTS exists to give teams time to do this properly, and that time is finite.

Where independent Flink support fits

  • Self-managed Flink on Kubernetes or YARN, including versions the community no longer patches.
  • Job-level support on managed platforms, where the provider covers the cluster and nobody covers checkpoints, state and watermarks.
  • The systems at each end, usually Kafka in and a database or lake out, because streaming incidents rarely respect product boundaries.
  • The 1.x to 2.x migration, with engineers who can read the job code.

AceMQ provides 24/7 Apache Flink support with a 15-minute emergency SLA and named senior engineers, alongside Kafka support for the pipelines that feed it. Examples: a checkpoint timeout remediation and watermark and idle partition support.

Frequently Asked Questions

Who provides Apache Flink support?

The Apache Flink community supports the current and previous minor release with no response time. Vendors of managed Flink services support their own platforms. Independent providers such as AceMQ support self-managed Flink and the jobs running on any platform.

Which Flink versions are supported?

The community supports the current and previous minor release with bugfixes. At the time of writing Flink 2.3.0 is the latest stable release and Flink 1.20 is the long-term support release for the 1.x line.

Is Flink 1.x still supported?

Flink 1.20 is designated the LTS release for the 1.x line. Earlier 1.x versions are no longer supported by the project.

Does a managed Flink service support my streaming jobs?

It supports the runtime and cluster. Checkpoint tuning, state growth, watermarks and connector behaviour in your job are your responsibility or your support provider's.

Is there commercial support for open-source Apache Flink?

Yes. Platform vendors support their own distributions, and independent providers offer support contracts for self-managed Flink on any version.

Free Consultation

Get Expert Eyes on Your RabbitMQ Cluster

Whether you're troubleshooting a production incident, planning a migration, or want a second opinion on your architecture — our team is ready. No pitch, just answers.

Email Us