registrystack / registrystack/registry-stack

Measure and publish reproducible Registry Stack 1.0 capacity profiles

Open
#501 0 comments 0 reactions 0 assignees View on GitHub
area:docs area:notary area:relay enhancement triage:needs-implementation
Dominant language
Rust
Stars
2
Forks
0
Avg merge
2h 55m
Merged PRs (30d)
130

Description

## Outcome

An adopter can estimate a safe starting topology for Registry Stack 1.0 from measured, reproducible workload profiles and can rerun the same methodology with its own dataset and service-level assumptions.

The result is bounded evidence, not a universal throughput or hardware guarantee.

## Required workload model

Document the input variables that materially affect capacity, including:

- row count, column count, value sizes, indexes, refresh mode, and retained generations;
- source latency, error rate, pagination, OAuth/JWKS behavior, and refresh cadence;
- consultation rate, route mix, claim mix, purpose mix, batch size, and concurrency;
- credential issuance and verification rate where enabled;
- PostgreSQL latency, pool limits, durability settings, and backup activity;
- audit sink and acknowledgement behavior; and
- CPU architecture, container runtime, image digest, product versions, and resource limits.

Define at least small, medium, and large synthetic profiles with explicit exclusions.

## Definition of Done

- [ ] Relay load and soak tests run against every published profile with committed thresholds and reproducible commands.
- [ ] Notary has end-to-end load and soak coverage for consultation-backed evaluation and each 1.0 credential path, not only microbenchmarks.
- [ ] Combined Relay/Notary testing records throughput, latency distribution, error distribution, CPU, memory, database saturation, queue/pool behavior, and recovery after overload.
- [ ] Recommended starting CPU, memory, disk, PostgreSQL, and concurrency settings are published for the exact supported Compose profile.
- [ ] Backpressure, 429/503 behavior, bounded memory, readiness degradation, and recovery are tested under overload and dependency failure.
- [ ] Results record exact source revision, release artifacts, workload inputs, host specification, commands, raw machine-readable results, and known limitations.
- [ ] The sizing worksheet allows operators to replace defaults with their own assumptions and clearly identifies variables that require a measured deployment test.
- [ ] A release gate detects missing, stale, or incompatible profile evidence.

## Non-goals

- A universal TPS promise.
- Sizing an institution's ingress, identity provider, monitoring stack, network, source registry, or managed database service.
- Treating one synthetic result as proof for arbitrary country data or policy.

## Related work

- #101
- #109
- #113
- #363
- #496

Contributor guide

Open the contributing guide

Research direction

Start by reviewing related issues #101, #109, #113, #363, and #496, then locate the Relay and Notary load and soak test entry points for the supported Compose profile. Define the small, medium, and large workload inputs and exclusions, and establish reproducible commands and committed thresholds. Done means published sizing guidance, raw machine-readable evidence, a customizable worksheet, overload and dependency-failure results, and a release gate for missing or stale profiles.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker-compose, postgresql, rust
Domain
backend-api-design, databases, documentation, performance, release, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.