Tag
#decision
22 pages tagged #decision.
1 deprecated hidden
Decisions decisions/ 22 pages
Thin-core architecture: one Go binary owning state, sequencing, keys and recovery, with every other tool kept as a pinned subprocess.
Project name exocomp, after the Control D collision ruled out the working name.
Secrets envelope of age recipients, a DEK and HKDF subkeys, with a recovery kit that closes the credential loop.
OpenTofu HTTP state backend implemented in SQLite, sidestepping the S3 conditional-write gap.
Job sandboxing via nono's enforcing tier, so a job is denied every powerful local socket.
A uv build-time Python toolchain plus a doctor-gated operator escape hatch in the data volume.
The audit hash chain is deferred, and reviving it requires an off-host-anchored head.
Multi-step choreography runs on a step ledger over the job store, with DBOS deferred.
LAN listeners require locally-minted bearer tokens, with TLS on by default.
A git-centric source model with deploy and fleet keys, and state-only versus run-in-server workspaces.
Project dependencies resolve from root requirements.txt or pyproject.toml into hash-gated caches, with uv shipped at runtime.
Litestream as an optional fast-RPO sidecar replicating the database WAL, with restic staying authoritative and an unencrypted remote refused without an acknowledgement.
OpenBao Transit as an optional additive seal for the DEK, keeping the age keyring recovery path and treating unreachable as an explicit error.
One core with three thin programmatic faces, the machine CLI, the HTTP API and MCP, sharing the one auth model, the one queue and the wire envelope.
Ansible collections go per-source in a content-hash-keyed cache resolved at claim time and garbage-collected with the source lifecycle.
exocomp ships as a self-contained base image that is also an artifact carrier, bootstrapping uv when absent and delegating ansible on PATH.
One shared probe vocabulary for checks and gates, with the SSRF guard applied per face and Location opt-in per kind.
Opt-in aggregate check events carrying the present host set, superseded by Decision 0019 which removes them.
Aggregate check events, the event host set and the limit-hosts flag are removed, leaving migration 0041 as inert schema.
Reload first, restart after drain, and recover interrupted jobs, with schedules reloading without a restart.
The host scope stays write-only: the request response returns terminal state, and a same-key retry polls the original job without enumeration.
Withdraw the v1.0 label: the acceptance bar stays met and gate-tested, but the release line begins at v0.1.0 and release-please owns later versions.