Reliable scheduled work, on infrastructure you control.
Chronoverse is a self-hosted scheduler for heartbeat checks and container workloads. Go services and Kafka workers sit behind it, state lives in PostgreSQL, and every run leaves a trail you can inspect.
scripts/k8s/setup.sh --mode production --context <context>
One lifecycle from schedule to evidence.
Define work once, run it on a schedule or on demand, and keep the trail you need to explain what happened.
Synchronous ownership. Asynchronous progress.
The API stays responsive across gRPC domain boundaries. Kafka workers route slow, distributed, and failure-prone work to the Docker nodes they own.
Who owns each of the 5 stages, and where does recovery start?
- 01Command
The gateway validates session, CSRF state, input, and idempotency.
- 02Commit
The service writes state and an outbox event in one transaction.
- 03Dispatch
The relay publishes to Kafka and partition workers take ownership.
- 04Execute
A worker claims a lease and takes a runtime endpoint, then runs the container and renews the lease.
- 05Observe
Logs, notifications, analytics, traces, and terminal state converge.
Failure is represented in state, not hidden behind retries.
Chronoverse assumes messages repeat, processes restart, and ownership expires. Explicit invariants keep it correct at every boundary, and idempotency records outlive the longest redrive window.
Explore replay safetyRetry the same command without duplicating a workflow or manual job.
Commit domain state and publication intent in one PostgreSQL transaction.
Reject build, schedule, terminate, and delete work from an old definition.
Stop stale workers from finishing work after ownership has moved.
Deduplicate notifications, analytics, and retained logs.
Advance Kafka offsets only after the final result is known.
Can you inspect it while it runs?
Startup order comes from health checks. LGTM receives traces, metrics and logs. Recovery loops make abandoned work visible and bounded.
outbox-relay 2/2 availableexecution-worker 2/2 availabledocker-proxy ds runtime-agent sidecars readyjoblogs-processor 2/2 availableserver 2/2 availableWhere does the engineering reference live?
The guides, the OpenAPI contract, the navigation, the link checks and this site are all authored in this repository and deployed together.
Questions readers ask first.
Short answers, taken from the configuration reference and the source.
