whiteducksoftware / whiteducksoftware/flock

[1.0] Bound ready-work admission and global execution concurrency

Open
#440 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
120
Forks
14
Avg merge
19h 32m
Merged PRs (30d)
8

Description

The scheduler can create unbounded tasks, and context is constructed before the per-agent semaphore admits engine work. Agent concurrency limits therefore do not bound waiting tasks or their contexts.

Scope

  • Add bounded admission for start-ready work and a process-wide active execution limit while retaining existing per-agent limits.
  • Build context only after the execution slot is granted; ensure supported publish/timer/invoke paths cannot silently bypass the applicable limits.
  • Define explicit wait/reject results for overload. Artifact persistence must not be confused with admission to processing.

Acceptance criteria

  • A deterministic burst stays within configured ready-work and active-run limits.
  • Instrumentation confirms context construction does not happen for work still waiting for execution admission.
  • Overload is visible to callers and operators; cancellation/shutdown releases capacity without silently losing admitted work.

Boundaries

Incomplete AND/batch/join reference limits have a separate dependent ticket; distributed scheduling is deferred.

References

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading src/flock/orchestrator/scheduler.py, src/flock/core/orchestrator.py, and src/flock/core/agent.py to trace ready-work admission, context construction, and execution limits. Define the relevant wait or reject behavior and verify that supported publish, timer, and invoke paths honor the limits. Done means deterministic bursts stay within ready-work and active-run limits, waiting work does not construct contexts, overload is visible, and cancellation or shutdown releases capacity.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.