Benchmark Dashboard

Interactive visualization of performance measurements for the a2a-protocol-sdk Rust implementation. All data is auto-generated from Criterion.rs benchmark results by CI.

Open the interactive dashboard: Benchmark Dashboard →

What the dashboard shows

TabContents
OverviewKey performance highlights, payload scaling, event queue throughput
TransportHTTP round-trip latency, JSON-RPC vs REST, connection reuse, error paths
SerdePer-type serialization cost, batch scaling, SerBuffer vs to_vec, interceptor overhead
ConcurrencySends, streams, and store operations at 1-64 concurrent connections
Data VolumeStore operations at 1K-100K tasks, history depth scaling
BackpressureStream volume, slow consumer impact, concurrent streams, timer calibration
EnterpriseMulti-tenant isolation, CORS, rate limiting, eviction, large histories, pagination
ProductionAgent burst scaling, E2E orchestration, cold start, push config CRUD, cross-language
MemoryAllocation timing under counting allocator, bytes per payload, history scaling
All ResultsSearchable table of all individual benchmark measurements

Methodology

All benchmarks use Criterion.rs with median ± MAD (Median Absolute Deviation) as the robust central tendency measure. Each benchmark runs Criterion's default of 100 samples unless its group sets a smaller sample_size (10–30 for the slow end-to-end groups), with warm-up iterations to avoid cold-start artifacts.

  • Environment: CI runners (ubuntu-latest) — use for relative comparisons and regression detection, not absolute performance guarantees
  • Transport: All HTTP benchmarks use loopback (127.0.0.1) to isolate SDK overhead from network latency
  • Determinism: Fixed task IDs and payloads inside measurement loops

Reproducing locally

# Run all benchmarks and generate the dashboard
cargo bench -p a2a-benchmarks
./benches/scripts/generate_dashboard.sh

# Open the dashboard
open book/src/reference/benchmark-dashboard.html

See also