Skip to content

Operator run index scale follow-ups #1036

Description

@marcusrbrown

Summary

Track non-blocking follow-ups from the GET /operator/runs implementation merged in #1035.

Follow-ups

  • Evaluate run-index read amplification: the endpoint can perform up to authorized repos × MAX_RUNS_PER_REPO run-state object reads per request, while returning at most 100 summaries. Current rate limits bound blast radius, but higher repo/run counts may need an early global short-circuit, smaller per-repo cap, or a stronger index.
  • Consider deduplicating bindings before the authz fan-out cap: duplicate channel bindings for one owner/repo can consume cap slots before owner/repo dedup, reducing unique repo coverage below the nominal cap.
  • Define the long-term run-state retention policy: listWithMetadata sorts after bounded S3 pagination, so extremely large per-repo run-state prefixes can miss newer objects beyond the list iteration cap. S3 lifecycle cleanup is the likely operational mitigation.

Context

These are not correctness or security blockers for #1035. They are scale/operational fairness follow-ups for larger installations or long-lived deployments.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions