Skip to content

Document storage tuning, thread debugging, MQTT durable sessions, analytics config#489

Open
kriszyp wants to merge 1 commit into
mainfrom
docs/storage-tuning-debugging-mqtt-analytics
Open

Document storage tuning, thread debugging, MQTT durable sessions, analytics config#489
kriszyp wants to merge 1 commit into
mainfrom
docs/storage-tuning-debugging-mqtt-analytics

Conversation

@kriszyp
Copy link
Copy Markdown
Member

@kriszyp kriszyp commented May 14, 2026

Summary

Fills in documentation gaps identified by reviewing harper-pro/core against the reference docs. Adds two new reference pages and expands four existing sections so user-facing capabilities that previously lived only in config-root.schema.json or release notes are now properly documented.

What changed

New pages

  • reference/database/storage-tuning.md — deep dive on storage.* for production tuning: writeAsync durability tradeoffs, compression dictionary/threshold, multi-path blobPaths, prefetchWrites/noReadAhead/pageSize/caching, maxTransactionQueueTime, and the full storage.reclamation.* reference (threshold, interval, evictionFactor) plus workload recipes.
  • reference/configuration/debugging.mdthreads.debug.* (port, startingPort, host, waitForDebugger), Chrome DevTools + VS Code attach instructions, SSH-tunneled remote debugging, and an expanded threads.heapSnapshotNearLimit section.

Expanded sections

  • reference/mqtt/overview.md — new Durable Sessions section (cleanStart/sessionExpiryInterval, hdb_durable_session storage, audit-log catch-up, per-node scope) and a note on hdb_session_will for Last Will durability. Also fixes a duplicate ### Last Will heading.
  • reference/analytics/overview.md — full analytics.* config reference, including the previously undocumented storageInterval, plus replicate, logging, and aggregatePeriod.
  • reference/configuration/options.md — annotated threads.heapSnapshotNearLimit and threads.debug, expanded storage.reclamation.* with per-property defaults, added analytics.storageInterval and analytics.logging, linked the storage section to the new Storage Tuning page.
  • reference/configuration/overview.md and reference/database/overview.md — cross-links to the new pages.
  • sidebarsReference.ts — registered both new pages.

Why

A review of public-facing surfaces in harper-pro/core against the docs surfaced several config keys, behaviors, and APIs that were either schema-only (storage.reclamation.*, analytics.storageInterval, threads.debug.* sub-options) or present in code but missing user-facing guidance (MQTT durable sessions, blob-path strategies, write durability tradeoffs). The features are user-visible and operationally important, so documenting them reduces the gap between schema knowledge and what an operator can reasonably do without reading source.

Test plan

  • npm run build succeeds locally — only pre-existing broken-anchor warning unrelated to this change
  • Spot-check rendered pages on preview: Database → Storage Tuning, Configuration → Worker Thread Debugging, MQTT → Durable Sessions section, Analytics → Configuration section
  • Verify sidebar entries appear under Database and Configuration categories

🤖 Generated with Claude Code

…lytics

Fill in documentation gaps identified by reviewing harper-pro/core against
the reference docs:

- New Storage Tuning page covering writeAsync, compression dictionary/
  threshold, blobPaths, prefetchWrites, noReadAhead, pageSize, caching,
  maxTransactionQueueTime, and the storage.reclamation.* sub-properties
  (threshold/interval/evictionFactor) — previously schema-only.
- New Worker Thread Debugging page covering threads.debug.* (port,
  startingPort, host, waitForDebugger), Chrome DevTools and VS Code
  attach instructions, SSH-tunneled remote debugging, and an expanded
  treatment of threads.heapSnapshotNearLimit.
- MQTT overview: full Durable Sessions section (cleanStart/
  sessionExpiryInterval, hdb_durable_session storage, audit-log
  catch-up, per-node scope) and a note on hdb_session_will for Last
  Will durability. Fix a duplicate Last Will heading.
- Analytics overview: full analytics.* config reference including the
  previously undocumented storageInterval, plus replicate, logging,
  and aggregatePeriod.
- configuration/options.md: annotate threads.heapSnapshotNearLimit and
  threads.debug, expand storage.reclamation.* with per-property
  defaults, add analytics.storageInterval and analytics.logging, link
  storage section to the new Storage Tuning page.
- Cross-links from configuration/overview.md and database/overview.md;
  sidebar entries for both new pages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@kriszyp kriszyp requested a review from a team as a code owner May 14, 2026 18:44
@github-actions
Copy link
Copy Markdown

🚀 Preview Deployment

Your preview deployment is ready!

🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-489

This preview will update automatically when you push new commits.

Copy link
Copy Markdown
Member

@Ethan-Arrowood Ethan-Arrowood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally lgtm with a minor nit.

Also don't forget to format!


### `analytics.aggregatePeriod`

Type: `number` (seconds) &nbsp;•&nbsp; Default: `60`
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Type: `number` (seconds) &nbsp;&nbsp; Default: `60`
Type: `number` (seconds) - Default: `60`

Not going to block on this, but this whole double space and special dot character (at least its not on my keyboard) seems extra. Most of the docs use regular characters like - here.


### `storage.reclamation.interval`

Type: `duration string` &nbsp;•&nbsp; Default: `1h`
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is `duration string` accurate here? It should it be `string` (duration)

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.

3 participants