<a id="cpflink-vs-oss"></a>

# Confluent Platform for Apache Flink Features and Support

Confluent Platform for Apache Flink® is compatible with Apache Flink. The following sections list all
components that are supported by Confluent.
Only configurations related to the listed components are supported.
Other configurations or custom configurations are not supported.

## Core components

The following core components are supported with Confluent Platform for Apache Flink:

* Runtime
* REST API
* Web UI
* Flink CLI

## State backends

The following state backends are supported with Confluent Platform for Apache Flink:

- [RocksDB](https://github.com/facebook/rocksdb/wiki) - recommended as the default state backend.
- Memory - recommended for small state.

## FileSystem implementations

The following `FileSystem` implementations are supported with Confluent Platform for Apache Flink:

- AWS S3 - includes Presto and Hadoop variants
- Azure blob storage
- Google Cloud cloud storage

## Data formats

The following data formats are supported with Confluent Platform for Apache Flink:

- Avro
- Avro (CSR)
- CSV
- ORC
- Parquet
- Protobuf
- JSON
- Debezium JSON
- Debezium Avro

## Flink APIs, libraries and metadata catalogs

The following table lists [API abstraction levels in Flink](../../concepts/flink.md#af-apis) and their Confluent Platform for Apache Flink support.

#### IMPORTANT
Confluent offers support only for the APIs, libraries and components of
Flink listed on this page. Code implemented by the customer (“customer code”)
and code embedded into Flink is not supported. This also includes other
open-source code parts of open-source Apache Flink or other open-source
projects. For example, using an open-source Flink connector is not supported
by Confluent and is considered customer code.

| Flink Component           | Supported by Confluent                                                                                             | Notes                                                                                                                                                                                                                                                                                                       |
|---------------------------|--------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Flink SQL                 | Yes, as CMF SQL statements or as part of a packaged JAR application<br/>based on the `TableEnvironment` interface. | Run SQL statements with the CMF REST API or the Confluent CLI<br/>interactive shell. For more information, see [Deploy and Manage Statements in Confluent Manager for Apache Flink](../sql-statements/overview.md#flink-sql-statements).<br/>The Apache Flink SQL Client and SQL Gateway are not supported. |
| Table API - Java & Python | Yes                                                                                                                |                                                                                                                                                                                                                                                                                                             |
| DataStream API - Java     | Yes                                                                                                                | Python for this API not currently supported.                                                                                                                                                                                                                                                                |
| DataSet API               | No                                                                                                                 | Deprecated in Apache Flink and not supported in Confluent Platform for Apache Flink.                                                                                                                                                                                                                        |

In addition:

- Libraries: Complex Event Processing (CEP) is the only library supported with
  Confluent Platform for Apache Flink, for use with SQL. Flink ML, Stateful Functions, and Queryable
  State are not supported.
- Catalogs: `GenericInMemoryCatalog` and `JdbcCatalog` are supported with
  Confluent Platform for Apache Flink. For SQL statements, CMF also provides Kafka catalogs. For more
  information, see [Manage Kafka Catalogs and Databases for Confluent Manager for Apache Flink](../../configure/catalog.md#flink-sql-catalog). Hive is not currently supported.

Note that Confluent only offers support for the APIs, libraries and components of Flink listed on this page. Code implemented by the customer (“customer code”),
also when embedded into Flink, will not be supported. This also includes other open source code part of open-source Apache Flink or other
open source projects. For example using an open source Flink connector not supported by Confluent, will be considered customer code.

<a id="af-cp-connectors"></a>

## Connectors

All Flink connectors are compatible with Confluent Platform for Apache Flink. However, professional support is limited to the connectors listed in the following table:

| Connector                        | Supported by Confluent   | Distribution channel                                                                                                                                        | Notes                                                                                                                                                                                                   |
|----------------------------------|--------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Kafka Source and Sink connectors | Yes                      | [Maven via packages.confluent.io](https://packages.confluent.io/maven/io/confluent/flink/flink-connector-kafka/)                                            | This includes: Table API Upsert Kafka connector, Datastream API Kafka connector, and the Datastream API Dynamic Kafka connector.<br/>Python, Java and SQL support only. Bundle with your user code JAR. |
| FileSystem Source and Sink       | Yes                      | [Maven via packages.confluent.io](https://packages.confluent.io/maven/io/confluent/flink/)                                                                  | Python, Java and SQL support only. Additional support charges apply. Not bundled with the Confluent Docker image.                                                                                       |
| JDBC                             | Yes                      | [Maven via packages.confluent.io](https://packages.confluent.io/maven/io/confluent/flink/)                                                                  | Python, Java and SQL support only.                                                                                                                                                                      |
| Flink CDC Source connectors      | Yes                      | Available via [Open Source Flink](https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/connectors/flink-sources/overview/), supported by Confluent | Databases: DB2, MySQL, Oracle, Postgres, SQLServer. Java and SQL support only.<br/>Flink CDC Pipeline connectors and Flink CDC pipelines (YAML) are not supported.                                      |
| All other connectors             | No                       | Apache Flink                                                                                                                                                | No additional connectors are currently supported.                                                                                                                                                       |

## Deployment and monitoring

Note the following about deploying Flink jobs with Confluent Platform for Apache Flink:

- Confluent Platform for Apache Flink runs applications and statements on dedicated compute pools in
  Application Mode. Statements on shared compute pools run in Session Mode. For
  more information, see [Manage Compute Pools in Confluent Manager for Apache Flink](../../configure/compute-pools.md#cmf-compute-pools).
- Confluent Platform for Apache Flink supports high-availability deployment via Kubernetes.
  The default mode to deploy with Kubernetes is native. This is the only Confluent-supported
  deployment solution for Confluent Platform for Apache Flink.
- ZooKeeper is not supported.
- The following metrics reporters are supported with Confluent Platform for Apache Flink:
  - Datadog
  - Prometheus
  - InfluxDB
  - JMX
  - Statsd
  - Graphite
