Skip to content

docs(http,ha): the retries default, the third verify outcome, and a withheld peer endpoint - #443

Merged
lvca merged 2 commits into
mainfrom
issue-6267
Aug 17, 2026
Merged

docs(http,ha): the retries default, the third verify outcome, and a withheld peer endpoint#443
lvca merged 2 commits into
mainfrom
issue-6267

Conversation

@lvca

@lvca lvca commented Aug 17, 2026

Copy link
Copy Markdown
Member

Item 5 of ArcadeData/arcadedb#6267 - three API-visible changes the HTTP/HA reference had not caught up with. The engine-side PR is ArcadeData/arcadedb#6284.

retries on POST /api/v1/command (and every other auto-committing endpoint) now defaults to arcadedb.txRetries (3) instead of a hard-coded 1 - the same attempt count the embedded and remote Java APIs take. Documented with the caveat that actually matters to a user: only NeedRetryException / DuplicatedKeyException are retried, always after a full rollback, so nothing the failed attempt wrote survives - but the command runs again, so a SQL or JavaScript function with a side effect outside the database can now perform it more than once per request. "retries": 1 keeps the old single-attempt behaviour.

overallStatus on POST /api/v1/cluster/verify/{database} has a third value, VERIFICATION_INCOMPLETE ("no divergence observed, but at least one peer could not be verified"). The endpoint had a one-line table cell and no description of its response at all, so this adds a "Verify Outcomes" section with all three values, why an unverified peer is deliberately not rolled up as an observed divergence, and the note for alerting: keying on != ALL_CONSISTENT is unaffected, keying on INCONSISTENCY_DETECTED needs the new value added to keep catching an unreachable node.

Peer-to-peer endpoints. The existing "Client Routing Ports" section documents what happens when two peers derive to the same bolt/grpc address. The same thing happens to the http/https endpoints the nodes use to reach each other - a snapshot resync, a cluster verify, the presence matrix - and ArcadeData/arcadedb#6267 made that refusal visible instead of silent. The new section says what is withheld, the three places it now shows up (a one-time WARNING per protocol, httpAddressAmbiguous in GET /api/v1/cluster and on the Studio node card, and the error text of whichever operation was refused), and why http and https are checked independently.

Anchors added: ha-peer-endpoint-ambiguity, ha-verify-outcome. Both are referenced from within the same document; the retries paragraph links the existing setting-database anchor.

lvca added 2 commits August 14, 2026 16:18
…ing address is withheld

The object form of arcadedb.ha.serverList gained bolt: (#5002) and grpc: (#6091), neither of
which was documented outside the code. A new "Client Routing Ports" section says what they
are for and the sentence that matters operationally: declare them whenever your nodes do not
all listen on the same port for that protocol, because the fallback derives a peer's address
from this node's port.

It also documents what #6183 changed: when two peers derive to the same address - nodes that
share a host and differ only by port - neither is advertised, because two listening sockets
cannot own one host:port, and nothing at all is advertised when the leader is one of them.
BOLT then answers ROUTE with itself as READ and ROUTE only.

arcadedb.grpc.port is now a registered server setting, so unlike the other grpc.* keys it is
resolved from environment variables too.
…ithheld peer endpoint

Three API-visible changes from arcadedb#6221 / #6226 / #6267 that the reference had not caught up with.

- POST /api/v1/command (and every auto-committing endpoint): `retries` now defaults to
  arcadedb.txRetries (3) instead of a hard-coded 1. Documented with the caveat that matters:
  only NeedRetryException/DuplicatedKeyException are retried and always after a rollback, but
  the command itself runs again, so a SQL/JS function with a side effect OUTSIDE the database
  can now perform it more than once per request. Send "retries": 1 to opt out.
- POST /api/v1/cluster/verify/{database}: a new "Verify Outcomes" table for the three
  overallStatus values, including VERIFICATION_INCOMPLETE, with the note for alerting that
  keys on INCONSISTENCY_DETECTED specifically.
- A "Peer-to-Peer Endpoints" section for the http/https twin of the routing-port ambiguity
  already documented for bolt/grpc: what is withheld, the three places the refusal shows up
  (the one-time WARNING, httpAddressAmbiguous in GET /api/v1/cluster and the Studio card,
  and the error of whichever operation was refused), and why http and https are checked
  independently.
@mergify

mergify Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@lvca
lvca merged commit 9f2e374 into main Aug 17, 2026
3 of 4 checks passed
@lvca
lvca deleted the issue-6267 branch August 17, 2026 05:18
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