// the find
influxdata/influxdb-java
Java client for InfluxDB
The official Java client for InfluxDB 1.x, supporting both InfluxQL queries and line protocol writes with optional batching. If you're still running InfluxDB 1.x or using the 2.x compatibility API, this is your only real option. For anything newer, InfluxData wants you on influxdb-client-java or the v3 client.
Batching implementation is solid — configurable jitter, buffer size, and flush interval, with a retry-capable batch writer that handles transient failures. POJO mapping via annotations (@Measurement, @Column) saves a lot of boilerplate when you have domain objects you want to persist directly. MessagePack support for 1.4+ cuts wire size and parse time compared to JSON. Bound parameter queries prevent injection bugs in dynamic InfluxQL construction.
This library is in maintenance mode for a database version that's itself end-of-life — the README says so explicitly. The QueryResult deserialization model is verbose and awkward: you get nested lists of lists instead of typed results, so you're writing mapping code anyway unless you use the POJO mapper. No reactive/non-blocking API; everything is synchronous or callback-based with a thread pool, which is a mismatch if you're already on Project Reactor or Kotlin coroutines. Tests require Docker and a live InfluxDB instance, which makes CI setup heavier than it should be for a client library.