Skip to content

Operate

Pages for the people running Underwrite in production — SREs, operators, on-call engineers.

Deployment

Multi-stage Docker image, multi-arch builds, container hardening, and the production environment variables.

Deployment →

Operations

Day-2 operations — restarts, log capture, configuration reloads, key rotation, and incident triage.

Operations →

Observability

Prometheus metrics on /metrics, OpenTelemetry tracing (console / OTLP), structured log output, and what to alert on.

Observability →

Health and readiness

/healthz, /readyz, and /v1/health — what each probe checks and how to wire them into Kubernetes.

Health →

DLQ and replay

Inspecting the dead-letter queue, replaying events, and the rules of thumb for poisoning recovery.

DLQ →

Performance

Throughput baselines, latency budgets, and the knobs that move each.

Performance →

Database

The SQLite store, WAL journaling, busy timeout, schema migrations, and durable DLQ.

Database →

Migrations

Transactional schema migrations and how to write one.

Migrations →

Debugging

Reading the audit ledger, dumping traces, and the most common runtime traps.

Debugging →

Release process

Tag-driven publishing, reproducible wheels, GitHub Actions matrix, and the on-call checklist.

Release →

Changelog guide

Keep-a-Changelog format, release categorization, and how to move items from Unreleased to a tagged section.

Changelog →

Docker

Building the multi-arch image, running it locally, and the docker-compose profiles.

Docker →