I’m seeking some clarifications regarding my use of the InfluxDB Java Client v2 SDK (com.influxdb:influxdb-client-java) with an InfluxDB v3 instance.
Current Setup:
In my Kafka connectors, I am using the v2 SDK.
The sink connector, which writes from a Kafka topic to InfluxDB, uses the v2 SDK method writeApi.writePoints(bucket, config.org, points). I checked and it internally calls the /api/v2/write endpoint.
Despite this, the sink connector is able to write data successfully to my v3 database.
For the source connector, I have multiple Flux queries in my codebase. Although I understand that v3 does not officially support Flux, I’m still able to run these queries against my v3 instance using the v2 SDK.
I’ve confirmed that the instance I’m connecting to is v3 — the bottom right of the UI shows InfluxDB Cloud Serverless Storage Engine Version 3, and my login URL is: https://us-east-1-1.aws.cloud2.influxdata.com/. Despite this, both my source and sink connectors are working fine with the v2 client.
Could you please help clarify:
Am I actually connecting to a v3 instance, or could this be a v2 database under the hood?
Is this behavior expected — that the v2 SDK works with a v3 instance for both writing data and running Flux queries?
Is it safe to rely on this behavior going forward, or could it break in future versions?
Are there any performance benefits, optimizations, or other advantages to switching to the v3 SDK and the /api/v3/write_lp endpoint for writes?
Thanks for reaching out. I’ll try to answer your questions below.
Am I actually connecting to a v3 instance, or could this be a v2 database under the hood
Yes, InfluxDB Cloud Serverless is built on InfluxDB 3.
Is this behavior expected — that the v2 SDK works with a v3 instance for both writing data and running Flux queries?
Yes, this is expected with InfluxDB Cloud Serverless. But note that this is the only InfluxDB 3-based product that currently supports Flux queries. We left the v2 query endpoint enable to allow previous users of InfluxDB Cloud (TSM) to migrate their workloads without having to update their implementation.
Is it safe to rely on this behavior going forward, or could it break in future versions?
I’d recommend migrating to an InfluxQL- or SQL-based query workload. These are guaranteed support for the foreseeable future. No decision has been made to remove Flux support from InfluxDB Cloud Serverless, but it has been discussed. If it does get removed, there will be preemptive communication and lead time before it is actually turned off.
Are there any performance benefits, optimizations, or other advantages to switching to the v3 SDK and the /api/v3/write_lp endpoint for writes?
On the write side, performance is about the same between the v1, v2, and v3 APIs. They’re all based on line protocol and have the same processing characteristics.
However, on the query side, you will see a huge performance difference between the v2 API (Flux) and the v3 API (SQL). One of the reasons Flux isn’t supported in other InfluxDB 3 products is because of its poor performance when querying against the InfluxDB 3 storage engine. Flux was optimized for the InfluxDB v1/v2 storage engine (TSM). The InfluxDB 3 storage engine (formerly known as IOx) is optimized for SQL and SQL-like (InfluxQL) query languages. The InfluxDB v2 query endpoint can technically work with the InfluxDB 3 storage engine, but queries that perform well with InfluxDB v2 won’t perform well with InfluxDB 3.
We are working on creating a new V3 connector that uses the V3 Java SDK.
During implementation, we found that the V2 SDK (influxdb-client-java with com.influxdb.client classes) supports gzip compression. However, we couldn’t find similar support in the V3 SDK (influxdb3-java with com.influxdb.v3.client.InfluxDBClient).
Could you please help clarify the following:
Does the InfluxDB V3 Java client have compression enabled by default?
If not, is there a way to enable or configure compression, similar to how it’s done in the V2 SDK?
Thanks for sharing this Suyash. Could you also help with the following?
Does InfluxDB 3.0 when hosted on InfluxDB Cloud, support Private Link connections?
If yes, are there official step-by-step setup guides or documentation available for all three cloud providers (AWS, Azure, and GCP)?
I’m specifically looking for:
Confirmation on whether Private Link is supported for InfluxDB 3.0 Cloud instances.
Cloud-specific documentation or setup instructions for AWS, Azure, and GCP, if available.
Any official references, example configurations, or documentation links that could help.