---
id: ADR-PFM-DJE-009
title: Capacity-scaled admission across jobs and workspaces
product_area: platform
module: data-job-engine
revision: 1
status: proposed
design_intent: confirmed
source_sha:
  macroservice-libraries: 54536a441935c6e09fdb7f96f0bec71c52ba4e03
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
decision: >-
  Bulk admission takes the available room under job, workspace and service
  ceilings, scales the service ceiling by capacity, and rotates eligible work
  fairly with priority for long waits.
constrains:
  - DOM-PFM-DJE-006
  - WF-PFM-DJE-008
  - WF-PFM-DJE-015
  - SVC-PFM-DJE-engine
  - SVC-PFM-DJE-capacity
origin: >-
  services-platform:docs/proposals/api-workload-governance/README.md brief 3.1
  (approved 2026-10-17)
alternatives:
  - option: Admit strictly in arrival order
    why_not: A large early import can monopolize available grants.
  - option: Use only fixed worker counts
    why_not: A fixed count does not reflect changing database pressure.
consequences:
  - >-
    Workspace ceilings normally leave another service slot available; a service
    share of one allows one slot.
  - >-
    Zero capacity holds admission, while the stalled-work guard can fail a job
    after its separate inactivity threshold.
  - Initial budget values still require load evidence.
supersedes: []
evidence:
  - >-
    macroservice-libraries at 54536a44: src/admission-budget.ts,
    admission-planner.ts, bulk-batch-budget.ts
---

# Capacity-Scaled Admission Across Jobs And Workspaces

## Context

Large imports share service resources and database capacity with other work.

## Decision and Origin

Bulk admission takes the available room under job, workspace and service ceilings, scales the service ceiling by capacity, and rotates eligible work fairly with priority for long waits. The origin recorded above supplies the authority for this choice; implementation evidence supplies the limits described here.

## Alternative Comparison

Admit strictly in arrival order: A large early import can monopolize available grants.

Use only fixed worker counts: A fixed count does not reflect changing database pressure.

## Consequences

Workspace ceilings normally leave another service slot available; a service share of one allows one slot.

Zero capacity holds admission, while the stalled-work guard can fail a job after its separate inactivity threshold.

Initial budget values still require load evidence.
