Job Lifecycle
Every job in JobMaster follows a strictly defined state machine. Monitoring these statuses lets you observe exactly how work moves from your code to the database and into execution.
Job Statuses
| Status | Phase | Description | Storage |
|---|---|---|---|
SavePending | Entry Point | High-Throughput Mode. The job is accepted by the Agent but not yet persisted to the Master DB. The calling application continues without waiting for Master DB I/O. | Agent (Transient) |
HeldOnMaster | Durable Storage | Jobs scheduled for the future. They stay here to keep the Agent lean, only moving to a bucket once they fall within the TransientThreshold window. | Master Database |
AssignedToBucket | Onboarding | The job has been moved to an Agent Worker Bucket. It is visible to execution nodes and ready to be claimed. | Agent (Bucket) |
Onboarded | Staging | The job has been accepted by a bucket and is being prepared for execution. | Agent (Bucket) |
Queued | Staging | The job has been pulled from the bucket into a specific worker's local memory and is awaiting an available execution thread. | Worker Memory |
Processing | Execution | Your IJobHandler logic is currently running. The worker holds an active claim on this job. | Worker Thread |
Succeeded | Terminal | The handler finished successfully. The result is synced back to the Master DB for auditing. | Audit Log (Master) |
Failed | Terminal | The job has exhausted all retry attempts without success. | Audit Log (Master) |
Cancelled | Terminal | The job was manually or programmatically aborted before completion. | Audit Log (Master) |
Flow Overview
Your Code
│
▼
SavePending (Agent)
│
├─► HeldOnMaster (future jobs) ──► AssignedToBucket ──► Onboarded ──► Queued ──► Processing ──► Succeeded/Failed
│
└─► AssignedToBucket (immediate) ──► Onboarded ──► Queued ──► Processing ──► Succeeded/Failed
For a detailed explanation of the two scheduling paths (SavePending vs standard flow), see the Architecture Overview.
Related
- Buckets & Self-Healing — Bucket lifecycle and orphan recovery
- One-off Scheduling — How to enqueue jobs