Architecture
Worker And Jobs
Durable local job execution, Graphile Worker tasks, and job event SSE.
isplay start runs two local processes in one command: the Hono API and a Graphile Worker runner. Routes can still run synchronously, but wait=false now creates a durable job record and enqueues worker execution.
Task Names
replay.run
experiment.runThe worker executes replay and experiment jobs against the same Postgres database and artifact directory as the API.
Job Lifecycle
The API creates a durable
job projection and appends job.queued.The API enqueues the Graphile Worker job and appends
job.enqueued with the Graphile job id.The worker appends
job.started, runs replay or experiment execution, then appends job.finished or job.failed.SSE
GET /v1/jobs/{id}/eventsThe SSE response is generated from stored job events, so it can be read after the job has completed.
npx isplay jobs events <jobId>Operational Meaning
| Question | Current answer |
|---|---|
Does replay wait=false queue background work? | Yes. It returns a queued replay with metadata.jobId. |
Does experiment wait=false queue background work? | Yes. It returns { jobId, experimentId, status: "queued" }. |
| Can I subscribe to replay progress? | You can read durable job lifecycle events. Per-step replay streaming is not implemented. |
| Are jobs recoverable across API restarts? | Yes, through Graphile Worker and durable job projections, assuming the same Postgres database is used. |
See Limits for the consolidated behavior reference.