whiteducksoftware / whiteducksoftware/flock
[1.0] Bound ready-work admission and global execution concurrency
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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