Performance

Fast enough to call on every step.

Context selection takes microseconds, and the action log appends and verifies hundreds of thousands to millions of events per second, in memory. Every figure below is a median with its full range and raw files.

1.67µsHarpe, 10 items10 context items, 60-token budget, 2,000 calls. Median, range 1.64–1.72 µs over 5 runs.Evidence
34.78µsHarpe, 200 items200 context items, 1,500-token budget, 500 calls. Median, range 34.51–35.93 µs over 5 runs.Evidence
893,679events/sArgus appends1,000,000 appends through the public API, in memory. Median, range 886,397–897,344 events/s over 5 runs.Evidence
2,605,457events/sArgus verificationFull re-verification of all 1,000,000 events from the first event. Median, range 2,576,361–2,673,097 events/s over 5 runs.Evidence

Harpe: context selection

MeasurementMedianRangeRaw data
Harpe call time, 10 items (median call)
10 context items, 60-token budget, 2,000 calls; p50 of the calls in one run
1.67 µs1.64–1.72run1 run2 run3 run4 run5 · source · details
Harpe call time, 200 items (median call)
200 context items, 1,500-token budget, 500 calls; p50 of the calls in one run
34.78 µs34.51–35.93run1 run2 run3 run4 run5 · source · details
Average Harpe time per simulated turn
100,000 turns; includes building each turn's item list
44.9 µs44.6–45.3run1 run2 run3 run4 run5 · source · details

Argus: append and verify

MeasurementMedianRangeRaw data
Appends per second
1,000,000 appends through the public API, in memory; each validated, timestamped and SHA-256 chained
893,679 events/s886,397–897,344run1 run2 run3 run4 run5 · source · details
Average time per append
1,000,000 appends, in memory
1.12 µs1.11–1.13run1 run2 run3 run4 run5 · source · details
Verification speed
Full re-verification of all 1,000,000 events from the first event
2,605,457 events/s2,576,361–2,673,097run1 run2 run3 run4 run5 · source · details
Verification speed with an anchor
10,000 events verified against a recorded head (sequence number and hash)
2,660,694 events/s2,480,960–2,697,836run1 run2 run3 run4 run5 · source · details
Time to reach and report the edit
Verification walks from event 1 to the edit at event 500,000, in memory
183.9 ms182.4–185.7run1 run2 run3 run4 run5 · source · details

Kibisis: leases and writes

MeasurementMedianRangeRaw data
Lease operations per second, 16 threads
16 threads, one shared lease, in-memory coordinator in one process. The benchmark asks for a 50 ms lease; the coordinator stores deadlines in whole seconds and rounds up, so a lease lasts at least its TTL and at most one second longer
1,608,796 ops/s1,534,545–1,881,954run1 run2 run3 run4 run5 · source · details
Lease operations per second, 32 threads
32 threads, one shared lease, in-memory coordinator in one process. The benchmark asks for a 50 ms lease; the coordinator stores deadlines in whole seconds and rounds up, so a lease lasts at least its TTL and at most one second longer
1,813,258 ops/s1,465,492–1,856,764run1 run2 run3 run4 run5 · source · details
Vault writes per second (in memory)
10,000 writes to the Rust in-memory vault, each hashed into its audit journal; no disk and no encryption in this measurement
338,841 ops/s315,304–342,238run1 run2 run3 run4 run5 · source · details

Method

How these numbers were measured. Each figure is the median of 5 runs of the telarch-benchmarks programs at release tag v0.1.0-alpha.4, with the range of all runs beside it. 13th Gen Intel Core i5-13500, 20 logical CPUs, Linux 6.18, rustc 1.97.1, pinned to the performance-core threads (CPUs 0-11). Shared server, not isolated; each run started only after the 1-minute load average was below 4 on two checks 20 s apart. Synthetic data; real workloads will differ. Raw output of every run.

  • Times are wall-clock inside the benchmark programs, on a shared server; the range column shows how much runs varied.
  • Throughput figures are in memory. Disk, encryption and network are not part of these numbers unless the row says so.
  • Reproduce any row with the command on the evidence page.