Apache licensed · Alpha · Contributors welcome

JobDB & c2j

The Colony2 stack for cellular development.

Two open-source building blocks for durable, agentic workflows: JobDB, a durable workflow runtime, and c2j, the CLI that submits and runs jobs against it.

recipe to durable store
recipe YAML DAG
ops commands
JobDB durable state
$ c2j submit recipe.yaml
job queued
$ c2j run
step recorded · artifacts saved · ready for next lease

Open-source building blocks

Durable jobs without a heavy platform.

Colony2 keeps job ownership separate from job execution. That split lets large, long-running workflows pause, resume, retry, and leave an audit trail while still running on modest infrastructure.

runtime

JobDB

Iceberg for agentic workflows: a durable workflow runtime for job state, retries, wait points, human orchestration, and audit history.

github/colony-2/jobdb
CLI

c2j

The job CLI. A job is an execution of a recipe, and c2j submits, runs, lists, and resumes those jobs against JobDB.

github/colony-2/c2j

JobDB

Iceberg for agentic workflows.

JobDB defines the durable API surface for jobs. It keeps the workflow state small, explicit, and inspectable while execution can happen elsewhere.

The reference implementation is designed for pluggable storage backends and a scalable split between job ownership and job execution.

Key operations

  • Create job
  • Lease job
  • Record next job step
  • Complete job
  • Suspend job until...
  • List and get jobs

Runs on

  • SQLite
  • Postgres / Neon
  • Postgres plus object storage
  • Cloudflare Durable Objects

c2j

Submit and run durable jobs.

c2j executes recipes inside a cell. Recipes compose state machines, sequences, and ops. Ops are language-agnostic commands with defined input and output schemas.

Each op execution can record a git commit and output artifacts such as rollouts, design docs, test statements, and other durable evidence of work.

c2j commands
$ c2j [command]

Available commands:
  cells    list allowed dependent cells
  list     list jobs from the JobDB runtime
  ready    count ready jobs for a tenant
  run      run jobs through the runtime
  submit   submit a new recipe job

How they fit together

A job is one execution of a recipe.

The Colony2 stack gives cellular development a durable loop: Git stores the cell, c2j runs the recipe, and JobDB records state, retries, waits, handoffs, and audit.

01

JobDB

Durable job state, retries, wait points, human orchestration, and audit.

02

git

Cell content, cell memory, recipe definition, and ops implementations.

03

c2j

Execute jobs, collect user input, list jobs, submit jobs, and run inside a cell.

Anatomy of a job

  • recipe · YAML DAG
  • state machine · states and transitions
  • sequence · ops in order
  • op · a language-agnostic command

Data and artifacts

Config resolved through CEL templates and artifacts pass from one op to the next. The job can commit results back into the cell when the recipe decides that is the right outcome.

recipe → ops → durable store

Get started

Fork it, inspect it, build with it.

The work is intentionally open source and componentized. Start with the runtime and CLI, then add reusable ops and recipes as your workflows grow.