Bound aggregate Gitea traffic and coalesce concurrent reads #246

Closed
opened 2026-08-08 00:28:36 +00:00 by rockachopa · 0 comments
Member

Evidence

The shared Gitea AsyncClient has no application-level admission control, while search, detail, polling, and review flows fan out concurrent upstream requests. Feature-local limits do not bound aggregate traffic across tabs or preserve capacity for authored actions. No historical issue title or recent commit implements a transport-wide bulkhead or concurrent GET coalescing.

User value

Polling and read bursts cannot overwhelm Gitea or starve comments, reviews, and other mutations. Identical concurrent reads share one upstream call, while overload fails quickly and truthfully as retryable HTTP 503 instead of cascading into route timeouts.

Acceptance

  • Identical concurrent GETs execute once and return the same result to all callers.
  • Distinct reads never exceed the configured read capacity and saturated requests fail within the admission deadline.
  • Mutations are never coalesced and retain reserved capacity during read saturation.
  • Cancelling one GET waiter does not cancel work needed by other waiters.
  • Shutdown cancels shared requests before closing the HTTP client.
  • Configuration and retry behavior are documented; focused and full suites pass.
## Evidence The shared Gitea `AsyncClient` has no application-level admission control, while search, detail, polling, and review flows fan out concurrent upstream requests. Feature-local limits do not bound aggregate traffic across tabs or preserve capacity for authored actions. No historical issue title or recent commit implements a transport-wide bulkhead or concurrent GET coalescing. ## User value Polling and read bursts cannot overwhelm Gitea or starve comments, reviews, and other mutations. Identical concurrent reads share one upstream call, while overload fails quickly and truthfully as retryable HTTP 503 instead of cascading into route timeouts. ## Acceptance - Identical concurrent GETs execute once and return the same result to all callers. - Distinct reads never exceed the configured read capacity and saturated requests fail within the admission deadline. - Mutations are never coalesced and retain reserved capacity during read saturation. - Cancelling one GET waiter does not cancel work needed by other waiters. - Shutdown cancels shared requests before closing the HTTP client. - Configuration and retry behavior are documented; focused and full suites pass.
timmy was assigned by rockachopa 2026-08-08 00:28:36 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#246
No description provided.