Skip to content

Job API

This module defines RPC contracts for the Dendra background job processing system. It covers scheduler operations used to create, manage, and inspect asynchronous work across the platform.

These schemas support system tasks such as ingestion pipelines, scheduled processing, and operational workflows that run outside interactive API requests.

Scheduler defines the types and methods for creating and managing background jobs that are processed by workers.

classDiagram
  class Job {
    JobState job_state
  }
  class JobStatus {
    JobState job_state
  }
  class JobOptions
  class JobSpec
  class JobRunDetails
  class WorkerMeta
  class JobHistoryRecord {
    JobState job_state
  }
  Job *-- JobSpec : spec
  Job *-- JobOptions : options
  Job *-- JobRunDetails : run_details
  JobRunDetails --> WorkerMeta : worker
  JobRunDetails --> JobStatus : status
  JobHistoryRecord --> WorkerMeta : worker

Job Spec defines the specifications needed for the various job types processed by the system.

classDiagram
  class Job
  class JobSpec
  class GenericSpec
  class ExtractHoboTimeFrameSpec
  class GenerateImageVariantsSpec
  class SyncMetadataSpec
  class OrchestrationSpec
  class FutureSpec
  class ChangeEvent
  Job --> JobSpec : uses
  JobSpec <|-- GenericSpec : oneof
  JobSpec <|-- ExtractHoboTimeFrameSpec : oneof
  JobSpec <|-- GenerateImageVariantsSpec : oneof
  JobSpec <|-- OrchestrationSpec : oneof
  JobSpec <|-- SyncMetadataSpec : oneof
  JobSpec <|-- FutureSpec : planned
  SyncMetadataSpec --> ChangeEvent : references

Worker defines execution-plane types for running jobs, reporting progress, and publishing worker/job status events.

classDiagram
  class JobStatus {
    JobState job_state
  }
  class JobStatusEvent
  class WorkerStatusEvent
  class WorkerMeta
  JobStatusEvent *-- JobStatus : job_statuses
  JobStatusEvent --> WorkerMeta : worker
  WorkerStatusEvent --> WorkerMeta : worker

Cache defines persisted payloads for specific job types.

classDiagram
  class ExtractHoboTimeFrameCache