Skip to content

Correct the streaming limit docs and stale SDK and proto comments - #898

Merged
bkeroack merged 1 commit into
release/0.6from
docs/streaming-doc-mismatches
Oct 6, 2026
Merged

bkeroack merged 1 commit into
release/0.6from
docs/streaming-doc-mismatches

Conversation

@bkeroack

@bkeroack bkeroack commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Problem

Some streaming-API docs and comments describe behaviour the server does not have.

  1. gRPC limits table. The operator-limits tables in docs/api/streaming.md §12 and the manual describe eventsgrpcmaxsubscriptions as the "watch-set size per gRPC stream". It caps concurrent Subscribe and Watch streams across all connections (events/src/grpc.rs, shared active_subs counter). The gRPC carrier has no general per-stream entry cap, only the per-connection silent-payment and descriptor caps. The same tables call eventsgrpcmaxconns "concurrent gRPC streams"; it caps TCP connections. The config reference and the GrpcLimits doc comments named only Subscribe.
  2. SetCursor rate limit. Both SDKs' docs for the reserved RateLimited error kind say the server silently drops an over-rate SetCursor. Since feat(events): deterministic mid-stream SetCursor re-anchor ack/reject (#439) #441 it answers in-band with CursorRejected (RATE_LIMITED).
  3. Proto placeholders. Two comments in events.proto still say silent-payment matching (AddSilentPayments) and BlockTweaks emit and replay "land in a later change". Both have shipped.

The docs also promise that an over-quota watch add is rejected with RESOURCE_EXHAUSTED / 429, while the server drops it without a signal. That one is fixed in the node by #899, which makes the server report the rejection in-band, so this PR leaves that text alone.

Fix

Documentation and comments only; no behaviour changes.

  • docs/api/streaming.md §12, docs/manual/src/streaming.md, config-reference.md: correct the two limit rows.
  • events/src/grpc.rs: the cap's doc comments name Watch as well as Subscribe.
  • satd-events-client/src/error.rs (RateLimited) and clients/go/errors.go (KindRateLimited): say how the server reports an over-rate SetCursor.
  • events.proto: drop the two placeholder sentences. clients/go/eventspb is regenerated with clients/go/gen.sh; the only diff is those two comments.

Ran locally: clients/go/lint.sh (gofmt, vet, staticcheck, errcheck), clients/go/gen.sh (bindings match the proto), mdbook build docs/manual, and RUSTDOCFLAGS=-D warnings cargo doc -p satd-events-client --no-deps. The new intra-doc links resolve. That command still fails on 8 unresolved links and 1 private-item link that are already on the base branch, in event.rs, lib.rs and resilient_watch.rs; CI does not run it.

Notes

  • Targets release/0.6, for 0.6.1, with Report a refused watch add in-band (WatchAddRejected) #899, so 0.6.1 ships the corrected docs and comments. It was first opened against master; the commit forked at the release/0.6 cut and replays with the same patch. A forward-port to master follows once it merges; the published manual builds from master, so its fix goes live then.

🤖 Generated with Claude Code

@bkeroack
bkeroack force-pushed the docs/streaming-doc-mismatches branch from a395ff0 to 532f6f4 Compare October 5, 2026 20:34
@bkeroack bkeroack changed the title Streaming docs describe what the server does with over-quota watch adds Correct the streaming limit docs and stale SDK and proto comments Oct 5, 2026
- eventsgrpcmaxsubscriptions was described as the watch-set size per
  gRPC stream. It caps concurrent Subscribe and Watch streams across all
  connections, and eventsgrpcmaxconns caps connections, not streams. The
  config reference and the GrpcLimits doc comments named only Subscribe.
- Both SDKs said the server silently drops an over-rate SetCursor. Since
  #441 it answers in-band with CursorRejected RATE_LIMITED.
- Two proto comments still said silent-payment matching and BlockTweaks
  emit "land in a later change"; both shipped. The Go bindings are
  regenerated for the comment change.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@bkeroack
bkeroack changed the base branch from master to release/0.6 October 6, 2026 13:54
@bkeroack
bkeroack force-pushed the docs/streaming-doc-mismatches branch from 532f6f4 to 72ea01a Compare October 6, 2026 13:54
@bkeroack
bkeroack merged commit e019c7d into release/0.6 Oct 6, 2026
48 checks passed
@bkeroack
bkeroack deleted the docs/streaming-doc-mismatches branch October 6, 2026 15:55
bkeroack added a commit that referenced this pull request Oct 6, 2026
- eventsgrpcmaxsubscriptions was described as the watch-set size per
  gRPC stream. It caps concurrent Subscribe and Watch streams across all
  connections, and eventsgrpcmaxconns caps connections, not streams. The
  config reference and the GrpcLimits doc comments named only Subscribe.
- Both SDKs said the server silently drops an over-rate SetCursor. Since
  #441 it answers in-band with CursorRejected RATE_LIMITED.
- Two proto comments still said silent-payment matching and BlockTweaks
  emit "land in a later change"; both shipped. The Go bindings are
  regenerated for the comment change.

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
(cherry picked from commit e019c7d)
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