
Floor vs. ceiling
- A worker group is a floor: capacity reserved for a project that nobody else can use.
- A soft cap is a ceiling: an optional per-project limit on how much a project can use. See Manage Concurrency for details.
How it works
A worker joins a group by setting its group ID at startup.AP_PROJECT_WORKER selects the group’s scope:
- Project group — leave
AP_PROJECT_WORKER=true(the default). Assign individual projects to it from the platform’s Workers → Assignments page. - Platform group — set
AP_PROJECT_WORKER=false. Serves the whole platform’s runs; used for dedicated/canary fleets.
project-<group-name>-jobs) and picked up only by workers carrying the matching AP_WORKER_GROUP_ID with AP_PROJECT_WORKER=true. Projects without a group keep drawing from the shared queue.
Assigning projects to a group
You can assign a project to a project group in two ways:- UI — go to Platform → Infrastructure → Workers (
/platform/infrastructure/workers), open the Assignments tab, and pick the group for each project. - API — set
workerGroupIdon the project via the projects API. Use the bare group name (the same value as the group’sAP_WORKER_GROUP_ID); passnullto unassign and return the project to the shared queue.
maxConcurrentJobs — the project’s concurrency limit (the soft-cap ceiling). It’s the maximum number of flow runs the project executes at once:
- Omit it (or send
null) and the project uses the default:min(plan limit, group slots)— i.e. it can use the group’s full reserved capacity, up to the plan’s limit. - Set a number to cap the project below that. The value is clamped to the group’s slot count (a project can’t run more concurrently than its pool can serve).