docs(clients): document QWP ingestion and queries in the Node.js client - #569
Open
glasstiger wants to merge 10 commits into
Open
glasstiger wants to merge 10 commits into
glasstiger wants to merge 10 commits into
Conversation
…lient Rewrite the Node.js client page as the JavaScript client page for @questdb/nodejs-client 5.0.0 and the new @questdb/browser-client package: pooled ingestion and streaming SQL queries, column types, compiled writers, acknowledgements, transactions, store-and-forward, UDP, failover, error handling, browser session authentication, and migration from ILP and 4.x. Mark Node.js QWP support as beta on the Connect overview and client cards, and note where the JavaScript client differs on the connect-string, store-and-forward, failover, and client-behavior pages. Document the qwp.browser.tls.termination.enabled server setting.
|
🚀 Build success! Latest successful preview: https://preview-569--questdb-documentation.netlify.app/docs/ Commit SHA: 957fe3f
|
The 5.0.0 release ships QWP support as stable. Drop the beta admonition, list the client as stable on the Connect overview and client cards, and state the 5.0.0 minimum version under Requirements.
- IPv4: 0.0.0.0 is rejected, not stored as NULL; pass null instead. - Store-and-forward example: use lazy_connect=on, because the pooled client cannot start while QuestDB is down with initial_connect_retry=async alone. - Terminal rejections: under store-and-forward the rejected batch stays in the journal and every new sender on the slot fails again; document recovery. - Transactions: a borrowed sender's close() commits the open transaction; only a standalone sender rolls back. Clarify that flush() ends the transaction. - target=replica is a strict filter that also fails startup without a replica. - Document QwpSenderCloseTimeoutError from a standalone sender's close(). - TLS verifies against Node's bundled CAs, not the operating system store. - Store-and-forward lock recovery after a crash, including containers. - Query failover: detect re-execution with batchSequence, note that onReplayReset cannot identify the lease and that timeoutMs spans failover. - Add a DEDUP UPSERT KEYS example for at-least-once replay.
Only @questdb/nodejs-client ships in this release, so document the Node.js client alone and drop every mention of the browser client: the Browser applications section, the @questdb/browser-client package, installation, and requirements, the browser-only opaque QwpUpgradeError kind, and the server-side Browser connections section in configuration/qwp.md with its changelog entry. Rename the page and sidebar entry back to Node.js, and refer to the Node.js client on the connect-string, failover, store-and-forward, client-behavior, PGWire, and date-to-timestamp pages.
Unacknowledged rows in memory mode may already have reached QuestDB, so say they may be lost rather than that they are lost. Replace the Java-only journal warning: Node.js clients can share an sf_dir, but clients in other languages lock journals with operating-system file locks that the Node.js client does not see, so they may use the directory only after every Node.js client on it has stopped.
Callbacks run one at a time, and credit for a batch is granted only after its callback resolves, which throttles the server only when initialCredit sets a credit window.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Documents the QWP support shipping in
@questdb/nodejs-client5.0.0.connect/clients/nodejs.md): rewritten from an ILP-only ingestion page into a full QWP client page, following the structure of the other QWP client pages. It covers the pooled client (connectQwpNodeClient), the standaloneSender, connect strings, authentication and TLS, every column method and its QuestDB type, null handling, designated timestamps, arrays, decimals, compiled object-row writers, flushing modes and backpressure, acknowledgements, transactions, store-and-forward, UDP, querying (result value types, bind parameters, DDL/DML, cancellation, flow control, zero-copy views, compression), error handling with diagnostic fields, failover and connection events, concurrency, migration from ILP and from 4.x, and the legacy ILP transports. The URL stays/docs/connect/clients/nodejs/.targetandzonealso apply to ingestion, memory-mode senders give up afterreconnect_max_duration_millis,offis rejected forauto_flush_rowsandauto_flush_interval, only single-letter size suffixes are accepted,tls_rootsmust be PEM,sf_durability=appendis supported, plus its pooled slot naming and defaults.decimalColumnUnscaled()from the old page, and updates the stale PGWire Node.js tip, the Node.js date-to-timestamp snippet, and the "bring QWP to JavaScript" sentences in the wire-protocol specs.Dependencies
@questdb/nodejs-client5.0.0 is published.