Skip to content

Say what the client is now, not what it was against - #65

Merged
tonytonycoder11 merged 1 commit into
mainfrom
docs/2-0-content-pass
Jul 31, 2026
Merged

Say what the client is now, not what it was against#65
tonytonycoder11 merged 1 commit into
mainfrom
docs/2-0-content-pass

Conversation

@tonytonycoder11

Copy link
Copy Markdown
Contributor

A content pass over the README and STABILITY.md before cutting 2.0.0, so the documentation
describes the library that exists rather than the one that existed at 1.2.0.

The pitch was arguing against gRPC. "It pulls a large gRPC/Netty stack onto your classpath" was the
opening paragraph's case against the official client. Kdrant has a gRPC engine now, so that reads as an
omission rather than an argument. The claim it becomes is the one that is still true and is stronger:
the wire is yours to pick, REST by default with none of that on the classpath, gRPC one dependency away.

Six published modules were undiscoverable. kdrant-spring-ai, kdrant-langchain4j, kdrant-koog,
kdrant-micrometer, kdrant-spring-boot-starter and kdrant-bom appeared only inside a paragraph of
roadmap prose, so someone arriving from a search for a Spring AI vector store found no coordinate to
copy. There is a module table with one line each now, plus a BOM snippet and a "choosing an engine"
section that names the two things that actually differ between the engines: the port, and the eleven
operations Qdrant serves over HTTP only.

Architecture stopped duplicating that table and says what the table cannot: a second engine was
added without changing one line of kdrant-core, which is what the seam was for, and is the same
reason the core compiles for eight native targets.

STABILITY.md was written to argue for cutting 1.0 and then to justify shipping 1.x changes as
minors. The gate list for a release three majors ago is gone, the 0.x section with it, and in their
place is an "Upgrading from 1.x" section: the JVM API is unchanged byte for byte, a Gradle build
changes only the version number, a Maven build naming kdrant-core must move to kdrant-core-jvm. The
eleven HTTP-only operations are part of the contract there, because "both engines behave the same" only
means something if the exception is written down.

Also: version references moved to 2.0.0, the local-development docker run maps 6334 as well, and
the repository description and topics gained kotlin-multiplatform and grpc.

No code changes.

The README's opening argument was that gRPC is what the official client
costs you. Kdrant has a gRPC engine now, so that argument is half wrong and
reads as an omission. The pitch is the wire being yours to pick: REST by
default with no gRPC, protobuf or Netty on the classpath, and the gRPC
engine one dependency away when throughput is the bottleneck.

The bigger gap was discoverability. Six published modules were reachable
only from a paragraph of roadmap prose, so someone arriving from a search
for a Spring AI or LangChain4j vector store found no coordinate to copy.
There is a module table with one line each now, a BOM snippet, and a short
section on choosing an engine that names the two things that actually
differ: the port, and the eleven operations Qdrant serves over HTTP only.

The Architecture section had become a second copy of that table. It says
the thing the table cannot instead: adding a second engine changed no line
of kdrant-core, which is what the seam was for, and is the same reason the
core compiles for eight native targets.

STABILITY.md was written to argue for cutting 1.0 and then to justify
shipping 1.x changes as minors. Both readings are history. The gates for a
release three majors ago are gone, the 0.x section with them, and in their
place is what a reader upgrading actually needs: the JVM API is unchanged
byte for byte, a Gradle build changes only the version number, and a Maven
build naming kdrant-core has to move to kdrant-core-jvm. The eleven
HTTP-only operations are named there too, because "both engines behave the
same" is only a contract if the exception is written down.
@tonytonycoder11
tonytonycoder11 requested a review from a team as a code owner July 31, 2026 14:27
@tonytonycoder11
tonytonycoder11 merged commit 90af5eb into main Jul 31, 2026
7 checks passed
@tonytonycoder11
tonytonycoder11 deleted the docs/2-0-content-pass branch July 31, 2026 14:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant