Background
Budget-parked tasks are exempt from the reaper (firstAdmittedTime is never set) and taskCache has no cap, so sustained over-budget sends grow the backlog without bound and deliver arbitrarily late. Flagged as an accepted review finding on #4062.
Details
Expire never-admitted parked tasks once messageAge() exceeds a configurable maximum, emitting MessageErrorEvent so the application gets explicit feedback. Additionally enforce a configurable hard cap on taskCache, rejecting new sends with backpressure feedback when full.
Acceptance criteria
- A parked task past the age limit is dropped with a
MessageErrorEvent; taskCache never exceeds the cap, and sends beyond it are rejected with feedback rather than silently queued.
- Tasks admitted before the age limit are unaffected — the existing park→release-on-epoch-roll behavior stays green in the scheduler tests.
Background
Budget-parked tasks are exempt from the reaper (
firstAdmittedTimeis never set) andtaskCachehas no cap, so sustained over-budget sends grow the backlog without bound and deliver arbitrarily late. Flagged as an accepted review finding on #4062.Details
Expire never-admitted parked tasks once
messageAge()exceeds a configurable maximum, emittingMessageErrorEventso the application gets explicit feedback. Additionally enforce a configurable hard cap ontaskCache, rejecting new sends with backpressure feedback when full.Acceptance criteria
MessageErrorEvent;taskCachenever exceeds the cap, and sends beyond it are rejected with feedback rather than silently queued.