Skip to content

feature: add burst pacing mode and --duration flag (v0.14.1)#150

Merged
lewta merged 1 commit into
mainfrom
feature/v0.14.1-burst-pacing
Mar 22, 2026
Merged

feature: add burst pacing mode and --duration flag (v0.14.1)#150
lewta merged 1 commit into
mainfrom
feature/v0.14.1-burst-pacing

Conversation

@lewta

@lewta lewta commented Mar 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • mode: burst — new pacing mode that fires requests at full worker concurrency with no inter-request delay; intended for internal infrastructure testing and load experiments against services you own
  • pacing.ramp_up_s — optional linear ramp-up: inter-request delay decreases from 50ms × remaining_ramp_up_s to zero over the ramp window, preventing a cold-start spike against the target
  • --duration <duration> on sendit start — auto-stops the engine after a wall-clock time (e.g. --duration 5m); triggers the same graceful shutdown as SIGTERM; required when pacing.mode is burst — no unbounded burst sessions
  • Config validation accepts burst and skips the requests_per_minute > 0 check (unused in burst mode)
  • Dry-run output shows burst config with ramp-up, duration, and an internal-use reminder
  • --duration works for any pacing mode (optional for human/rate_limited/scheduled, required for burst)

Test plan

  • TestScheduler_Burst_NoRampUp — burst with no ramp-up returns immediately
  • TestScheduler_Burst_RampUp — first call delayed; post-ramp calls immediate
  • TestScheduler_Burst_ContextCancel — cancels cleanly during ramp-up sleep
  • TestScheduler_Burst_SteadyStateAfterRampUp — immediate after ramp-up expires
  • TestStartCmd_BurstRequiresDuration — error when burst mode without --duration
  • TestStartCmd_DurationFlag — flag registered on startCmd
  • Config test: mode: burst valid; mode: aggressive still invalid
  • All CI checks green

🤖 Generated with Claude Code

- mode: burst fires requests at full worker concurrency with no inter-request
  delay; intended for internal infrastructure and load experiments only
- pacing.ramp_up_s: optional linear ramp-up — inter-request delay decreases
  from ~50ms × remaining_ramp_up_s to zero, preventing a cold-start spike
- --duration flag on sendit start: auto-stops after a wall-clock time;
  required when mode is burst (safety gate — no unbounded burst sessions)
- Config validation accepts burst mode, skips rpm check for burst
- Dry-run output shows burst config with internal-use reminder
- Scheduler tests: NoRampUp, RampUp, ContextCancel, SteadyStateAfterRampUp
- startCmd tests: DurationFlag registered, BurstRequiresDuration error
- Config test: burst is now valid; aggressive is still invalid
- Docs: burst mode section in pacing.md; --duration in cli.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@lewta lewta merged commit 21f4384 into main Mar 22, 2026
12 checks passed
@lewta lewta deleted the feature/v0.14.1-burst-pacing branch March 22, 2026 01:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant