Skip to content

Add Wind-Tunnel performance testing for governance and PPR system #63

@Soushi888

Description

@Soushi888

Why now

Not blocking current work — this is a backlog item for after core zomes are complete and the Tryorama → Sweettest migration is done.

Wind-Tunnel fills a gap that Tryorama cannot address: performance and load testing under realistic distributed conditions. Nondominium's PPR (Proportional Participation Reward) system involves economic events, commitments, and claims across multiple concurrent agents — exactly the kind of workload where performance characteristics matter for fairness and correctness.

Holochain's core team confirmed (early 2026) that Tryorama is no longer maintained by them. Sweettest is the official replacement for functional testing. Wind-Tunnel is the official tool for performance testing. Both are the long-term story.

Scope

In scope:

  • Create perf/ directory with Rust Wind-Tunnel scenario crates
  • Scenario 1: PPR governance throughput (concurrent economic events, commitments, claims)
  • Scenario 2: Cross-zome call latency profiling (person → resource → gouvernance chain)
  • Scenario 3: DHT sync lag measurement for governance decisions
  • Local Mode 1 (single-machine stress test) only — no distributed Nomad cluster required

Out of scope:

  • Distributed Mode 2 testing (Nomad cluster, InfluxDB infrastructure) — deferred to production validation phase
  • Migrating existing Tryorama tests (separate issue)
  • Sweettest migration (separate issue / prerequisite)

Acceptance criteria

  • perf/ directory added to repo root with a Cargo workspace
  • Scenario 1: PPR governance throughput — measures zome call latency and throughput for concurrent economic events across 10+ agents
  • Scenario 2: Cross-zome latency — measures end-to-end latency for the person → resource → gouvernance call chain under load
  • Scenario 3: DHT sync lag — measures propagation time for governance decisions across agents
  • Each scenario runs in under 300 seconds locally with cargo run --package <scenario>
  • README in perf/ documents how to run scenarios and interpret results
  • Scenarios run within the existing nix develop environment (no extra tooling needed)

Architectural notes

Wind-Tunnel scenarios are standalone Rust binaries using holochain_wind_tunnel_runner as a library. Each scenario defines agent behaviors (functions that exercise specific zome calls), global setup/teardown hooks, and per-agent setup hooks.

The holochain_client_instrumented wrapper automatically captures latency metrics for every zome call — no manual instrumentation needed.

Reference implementation: unytco/wind-tunnel-unyt — a hApp with similar use case (economic events, multi-agent accounting).

Prerequisite: Sweettest migration should be completed first, to ensure functional test coverage is solid before adding performance tests.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3-mediumMedium priority - should be completed when possibleenhancementNew feature or requestppr-systemPrivate Participation Receipts system componentstestingTest infrastructure, scenarios, integration testszome-governanceGovernance zome - validation, economic events, commitments

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions