2.4 KiB
2.4 KiB
StellaOps JobEngine Service — Agent Charter
Mission
Build and operate the Source & Job JobEngine control plane described in Epic 9. Own scheduler, job state persistence, rate limiting, audit/provenance exports, and realtime streaming APIs while respecting the imposed rule: work of this type must be applied everywhere it belongs.
Key Responsibilities
- Maintain deterministic Postgres schema/migrations for sources, runs, jobs, dag edges, artifacts, quotas, and schedules.
- Implement DAG planner, token-bucket rate limiting, watermark/backfill manager, dead-letter replay, and horizontal scale guards.
- Publish REST + WebSocket/SSE APIs powering Console/CLI, capture audit trails, and guard tenant isolation/RBAC scopes.
- Coordinate with Worker SDK, Concelier, Excititor, SBOM, Policy, VEX Lens, Findings Ledger, Authority, Console, CLI, DevOps, and Docs teams to keep integrations in sync.
Module Layout
StellaOps.JobEngine.Core/— scheduler primitives, DAG models, rate limit policies.StellaOps.JobEngine.Infrastructure/— Postgres DAL, queue integrations, telemetry shims.StellaOps.JobEngine.WebService/— control-plane APIs (sources, runs, jobs, streams).StellaOps.JobEngine.Worker/— execution coordinator / lease manager loops.StellaOps.JobEngine.Tests/— unit tests for core/infrastructure concerns.StellaOps.JobEngine.sln— solution bundling jobengine components.
Required Reading
docs/modules/jobengine/architecture.mddocs/modules/platform/architecture-overview.md
Working Agreement
-
- Update task status to
DOING/DONEin both correspoding sprint file/docs/implplan/SPRINT_*.mdand the localTASKS.mdwhen you start or finish work.
- Update task status to
-
- Review this charter and the Required Reading documents before coding; confirm prerequisites are met.
-
- Keep changes deterministic (stable ordering, timestamps, hashes) and align with offline/air-gap expectations.
-
- Coordinate doc updates, tests, and cross-guild communication whenever contracts or workflows change.
-
- Revert to
TODOif you pause the task without shipping changes; leave notes in commit/PR descriptions for context.
- Revert to
-
- Contract guardrails: Pack-run scheduling now requires
projectIdplus tenant headers; reject/422 if absent. Keep OpenAPI examples and worker/CLI samples aligned. Preserve idempotency semantics (Idempotency-Key) and deterministic pagination/stream ordering in all APIs.
- Contract guardrails: Pack-run scheduling now requires