pm/draft-roadmap/improve_devex_api_twn_metrics_docs.md
2025-06-03 20:12:55 +10:00

6.0 KiB

Improve DevEx: API, TWN, Metrics, Docs

Estimated date of completion: {Enter date}

Resources Required for 2025H2:

  • {roles and % application to it}
  • {external services consumed (Vac/IFT)}
  • {infrastructure}

Proceed with a number of improvements to the developer experience on Waku, for both internal and external purposes. This includes:

  • improving The Waku Network reliability for Logos apps and other web apps
  • simplifying the Waku API
  • measuring Waku usage across all integrations
  • review and setting strategy for Waku documentation

FURPS:

deliverables:

(TODO: adjust FURPS for existing deliverables)

Define and Implement Light Push Error codes in nwaku

Owner: nwaku

Feature: Light Push

FURPS:

  • F4. Supports comprehensive error codes for various failure scenarios.
  • U4. Provides descriptive error messages in responses.
  • R3. Status codes indicate the best recovery method (retry, discard service node or irrecoverable failure).
  • R4. 80% message transmission success rate on live Status network (service node from both Status Desktop and fleet Waku instances)

For S1. Linux amd64 CLI as service node Includes spec delivery

Checklist:

  • Specs: link to specs
  • Code: link to GitHub issues/PRs/Epic
  • Dogfood: link to dogfooding session/artefact
  • Docs: links to README.md or docs.waku.org (TBD)

Implement Light Push Error codes in The Browser

Owner: js-waku

Feature: Light Push

FURPS:

  • F4. Supports comprehensive error codes for various failure scenarios.
  • U4. Provides descriptive error messages in responses.
  • R3. Status codes indicate the best recovery method (retry, discard service node or irrecoverable failure).

For S2. Browser as client Spec delivery not included.

Checklist:

  • Specs: link to specs
  • Code: link to GitHub issues/PRs/Epic
  • Dogfood: link to dogfooding session/artefact
  • Docs: links to README.md or docs.waku.org (TBD)

Introduce Waku API in the Browser

Owner: js-waku

Feature: Waku API

FURPS:

  • F1. Setup, start and stop a Waku node.
  • F2. Support edge node operation mode.
  • F4. Does automatic peer discovery based on the node platform and operation mode.
  • F5. Returns health and connectivity information using proven heuristics.
  • U1. When setting up a Waku node, no need to specify what protocols to mount, only an operational mode (edge or relay).
  • U2. Disconnection detection and recovery, and other peer management matters are automatically handled.
  • U3. Developers do not need to specify the protocols used to send and receive messages; it is deduced from the mode of operation.
  • U4. Developers pass and receive data to the API in types native to the wrapping language.
  • R1. Sends a message using peer-to-peer reliability (service node redundancy, optional store confirmation)
  • R2. Receives messages using peer-to-peer reliability (service node redundancy, periodic store query, periodic filter ping)

For S3. Browser

Checklist:

  • Specs: link to specs
  • Code: link to GitHub issues/PRs/Epic
  • Dogfood: link to dogfooding session/artefact
  • Docs: links to README.md or docs.waku.org (TBD)

Introduce Waku API in nwaku

Owner: nwaku

Feature: Waku API

FURPS:

  • F1. Setup, start and stop a Waku node.
  • F3. Support relay node operation mode.
  • F4. Does automatic peer discovery based on the node platform and operation mode.
  • F5. Returns health and connectivity information using proven heuristics.
  • U1. When setting up a Waku node, no need to specify what protocols to mount, only an operational mode (edge or relay).
  • U2. Disconnection detection and recovery, and other peer management matters are automatically handled.
  • U3. Developers do not need to specify the protocols used to send and receive messages; it is deduced from the mode of operation.
  • U4. Developers pass and receive data to the API in types native to the wrapping language.
  • R1. Sends a message using peer-to-peer reliability (service node redundancy, optional store confirmation)
  • R2. Receives messages using peer-to-peer reliability (service node redundancy, periodic store query, periodic filter ping)

For:

  • S1. Nim library; used by chat SDK
  • S2. Golang library; used by status-go

Checklist:

  • Specs: link to specs
  • Code: link to GitHub issues/PRs/Epic
  • Dogfood: link to dogfooding session/artefact
  • Docs: links to README.md or docs.waku.org (TBD)

Review Documentation and Define Guidelines

Owner: {one waku subteam}

(No FURPS)

  • Review the current developer documentation
  • And contributor doc
  • Define a guideline for Waku teams to follow when contributing to documentation
  • Setup an initial structure

Use Protobuf to transfer data from Wrapper to nwaku library PoC TBC

Owner: {one waku subteam}

Feature: {Feature Name (only 1)}

FURPS:

  • {F1. copy-paste full furps statement}

Checklist:

  • Specs: link to specs
  • Code: link to GitHub issues/PRs/Epic
  • Dogfood: link to dogfooding session/artefact
  • Docs: links to README.md or docs.waku.org (TBD)

{Name of deliverable 1 - eg "improve feature X for the browser"}

Owner: {one waku subteam}

Feature: {Feature Name (only 1)}

FURPS:

  • {F1. copy-paste full furps statement}

Checklist:

  • Specs: link to specs
  • Code: link to GitHub issues/PRs/Epic
  • Dogfood: link to dogfooding session/artefact
  • Docs: links to README.md or docs.waku.org (TBD)