Skip to content

Run scheduled sweeps with non-blocking execution semantics #442

@Brad-Edwards

Description

@Brad-Edwards

Raised from the 2026-03-28 full-codebase architecture and code-quality review.

Problem

Scheduled sweeps currently run synchronously on the scheduling thread, so a long run delays the next scheduled tick.

Evidence

  • backend/src/main/java/com/keplerops/groundcontrol/infrastructure/sweep/ScheduledSweepRunner.java

The code comment already calls this out explicitly.

Why this matters

Operational jobs should not couple scheduler liveness to the runtime of the previous job. This becomes fragile under load or when sweep duration grows.

Definition of done

  • Execute scheduled sweeps with non-blocking semantics or explicit backpressure control.
  • Prevent overlapping runs from corrupting behavior.
  • Emit clear operational telemetry for start, completion, duration, and skipped/overlapping executions.
  • Add tests for long-running or overlapping sweep scenarios.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions