influxdb icon indicating copy to clipboard operation
influxdb copied to clipboard

Create an Official Golang client for InfluxDB3 Core/Enterprise

Open wxmeng04 opened this issue 7 months ago • 10 comments

Describe Development Experience Issue:

https://github.com/InfluxCommunity/influxdb3-go/issues/143 Refer to the link above. It's very weird that official release of influxdb 3.0 is released while no qualified client is provided. It's even not possible for the potential user to test it.

Steps to reproduce:

  1. ...
  2. ...
  3. ...
  4. ...

Desired result:

Actual result:

Hardware Environment:

  • Package: ...
  • CPU: ...
  • Memory: ...
  • Block Device: ...

Operating System:

Code Editing Tool:

Build Environment:

[ ] I'm using sccache

wxmeng04 avatar May 08 '25 00:05 wxmeng04

It may be a good idea to use "no_sync = true" as the default in v3 api. It leads to very bad experience with default setting at service side.

wxmeng04 avatar May 08 '25 00:05 wxmeng04

@wxmeng04 There is the influxdb3_client code that the CLI uses in this repo that can be used, but it has not been released to crates.io. It seems you want a Go client though. Supporting clients especially in multiple different languages is not an easy task and does require engineering resources to maintain. Right now we've been focusing our efforts post GA launch on other needed features so a client is lower on the priority list and we'd likely start with Rust first.

As for no_sync=true as a default, there are many people where that durability matters more than speed of ingest. That mix of conflicting needs makes it hard to choose a good default and we can't change that now even if we wanted to since it would be a breaking change.

mgattozzi avatar May 08 '25 15:05 mgattozzi

@wxmeng04 just so I can clarify the title here and cleanup this issue, are you requesting for us to have an official Go Client for InfluxDB 3.x Core/Enterprise?

mgattozzi avatar May 08 '25 15:05 mgattozzi

@wxmeng04 just so I can clarify the title here and cleanup this issue, are you requesting for us to have an official Go Client for InfluxDB 3.x Core/Enterprise?

It would be better if you have an official golang client as you did for 2.x and 1.x. A lot of users of influxdb are develping software with golang. It will make the user easier to switch to 3.x if you maintain an official golang client. As far as I know, there are not more developers using Rust than Go in web server and IOT application cases. Java and Go may cover most use cases of your customers though I don't like Java personally.

wxmeng04 avatar May 09 '25 00:05 wxmeng04

I have used the existing client to write data into influxdb3. There is some very big latency of 20s or more periodically with concurrent write. We cannot use it even for testing purpose.

wxmeng04 avatar May 28 '25 07:05 wxmeng04

@wxmeng04 you should be able to use the http endpoints to write data for now. You might want to use the no_sync option if you don't care for data durability and prefer write speed. I think a Go client would be good, but I don't think it's on the roadmap right now.

mgattozzi avatar May 28 '25 16:05 mgattozzi

Is there any schedule to issue the official client? Rust is also an option for us.

wxmeng04 avatar Jun 18 '25 08:06 wxmeng04

Pulling in @garylfowler as he'll be the most likely one to know our timeline for this

pauldix avatar Jun 18 '25 13:06 pauldix

@garylfowler May you please tell us the expected date to issue the official client library? Either golang or Rust is ok. There are many problems to use a third party client library. For example, the golang library we used is still adopting compatible v2 api. This would dramatically prohibit users to have a trial of influxdb3.

wxmeng04 avatar Jun 24 '25 06:06 wxmeng04