Avvyland runs Locust as the load-testing harness. The hosted instance is at:
https://locust.k8s.avvyland.com
(Internal endpoint; requires VPN / cluster access.)
The scenarios and worker definitions live in gitlab.avvyland.com/avvy/load-testing.
Recommended baseline scenarios:
REST API smoke.
auth.login → entity.create_object → entity.update_object → entity.delete_object ramp.WebSocket fan-out.
brane.join a single brane; one client emits object.update at a target rate; measure broadcast latency to subscribers, total entity.update throughput, and connection-drop rate.Worker pipeline back-pressure.
model.preview.v1 tasks; observe queue depth (asynq), worker concurrency, retry rate, and callback verification latency in state-server.Snapshot replay storm.
resume_version; measure replay throughput and per-version version_complete cadence.Locust scenarios are Python files under scenarios/ in the load-testing repo. Conventions:
name so Locust's UI groups stats correctly.Define profiles in scenario metadata (number of users, hatch rate, spawn shape, duration). For ramping tests, use Locust's LoadTestShape to model sigmoid or step-up ramps.
stats, failures, history) are the canonical artifact. Archive them per run.Deployed services — the load-testing repo and adjacent infra.
Observability — for cross-referencing latency.
Redis task queue — for the queue-depth signal during worker tests.
gitlab.avvyland.com/avvy/load-testing.