You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Description: There is no load/performance testing anywhere in the repository — npm test/npm run test:e2e validate correctness, not throughput or behavior under concurrency, despite known concurrency-sensitive code paths already flagged elsewhere in this backlog (issue #65's idempotency-key race, issue #76's check-then-act race in update()). Add a load-testing suite (k6, Artillery, or similar) targeting POST /api/v1/intents, the quote endpoint, and the accept endpoint under realistic concurrent load.
Problem Statement & Context: Races like the ones in issues #65 and #76 are exactly the class of bug that only reliably surfaces under real concurrent load — a load-testing pipeline both validates fixes for those issues and establishes a performance baseline before the CD/staging pipelines in issues #28/#110 start shipping regularly.
Add a CI job (manually triggered or scheduled, not on every PR given runtime cost) that runs the suite against the staging environment from issue Add test coverage reporting and a minimum threshold in CI #110 and reports latency/error-rate results.
Out of scope: fixing any races the load tests uncover — file those as new issues; this issue delivers the testing tooling and baseline report.
Explicitly out of scope: load-testing on-chain Soroban RPC calls directly against a real network (use the dry-run flag from issue Add secrets scanning to CI #51 or mocked responses to avoid hammering real infrastructure).
Model concurrent-accept scenarios explicitly (multiple simulated solvers racing to accept the same open intent) since that's the highest-value scenario for validating issue Add idempotency keys to intent creation #76's fix.
Keep test data isolated (a dedicated load-test user/solver namespace) so results don't pollute real data in whatever environment it targets.
Testing: the load-test suite itself needs to be run and its output (latency percentiles, error rate, and specifically whether any double-accept/race condition was observed) included as evidence in this issue's PR.
Definition of Done:
Load-test suite implemented, CI job added, baseline report produced.
Acceptance criteria met.
PR passes CI, includes load-test run output/report.
Description: There is no load/performance testing anywhere in the repository —
npm test/npm run test:e2evalidate correctness, not throughput or behavior under concurrency, despite known concurrency-sensitive code paths already flagged elsewhere in this backlog (issue #65's idempotency-key race, issue #76's check-then-act race inupdate()). Add a load-testing suite (k6, Artillery, or similar) targetingPOST /api/v1/intents, the quote endpoint, and the accept endpoint under realistic concurrent load.Problem Statement & Context: Races like the ones in issues #65 and #76 are exactly the class of bug that only reliably surfaces under real concurrent load — a load-testing pipeline both validates fixes for those issues and establishes a performance baseline before the CD/staging pipelines in issues #28/#110 start shipping regularly.
Scope & Acceptance Criteria:
load-tests/directory or similar) covering: concurrent intent creation, concurrent quote requests, and concurrent accept-on-the-same-intent (the exact race class from issues Guard BigInt(dto.fillAmount) against malformed input #65/Add idempotency keys to intent creation #76) against a running instance.Implementation Guidelines:
src/intents/intents.controller.ts,src/intents/intents.service.ts(thecreate()/update()methods referenced by issues Guard BigInt(dto.fillAmount) against malformed input #65/Add idempotency keys to intent creation #76),src/solvers/solvers.controller.ts.Definition of Done:
Resources:
src/intents/intents.controller.ts,src/intents/intents.service.ts,src/solvers/solvers.controller.tsComplexity: High (200 points)