Every background job is visible, resumable and controllable — including after a restart.
curl "$API/jobs/lanes"
{
"lanes": [
{ "lane": "statements.esef", "running": 1, "backlog": 412 },
{ "lane": "earnings.dates.repair", "running": 0, "backlog": 0 }
]
}
POST /sync/all — never blocks.A job whose process died used to sit on “running” forever — blocking every further run of the same lane.
Every job now carries the identity of the process that started it. Whoever does not hold that identity cannot still be running and is recorded accordingly. That is the whole idea, and it cleared twelve stale records on the first start.
Runs are derived from the data itself, not from an offset. A cancelled run therefore resumes where it stood, with no bookkeeping.
| GET | /jobs/lanes | Backlog per lane |
| GET | /jobs/{job_id} | Status of a job |
| POST | /jobs/{job_id}/cancel | Cancel a job |
| POST | /sync/all | Everything that is due |
Something missing, something off, or an answer you don't understand? Write it here — it reaches us directly.