Skip to main content
This page is the hub for running Omniflow reliably: what to measure, what to alert on, what already degrades gracefully when a dependency fails, and how to size the host it runs on. Each section links to the page that documents its subject in full rather than repeating it.

Service-level indicators

Defined per surface in Health, metrics, and logs, grounded only in metrics confirmed to actually be written. Notifications has no indicator today — there is no delivery metric to build one from, stated there rather than invented here.

Dashboards and alerts

Omniflow bundles no Prometheus or Grafana of its own, the same stance it takes on a reverse proxy: two maintained, optional artifacts live under deploy/observability/ for you to import into your own monitoring stack.
  • deploy/observability/prometheus-alerts.yml — every bullet from Alerts worth having as a real alert:/expr:/for: rule. The for: durations are sensible defaults derived from APP_MAINTENANCE_FAILURE_STREAK and APP_MAINTENANCE_PROBE_SECONDS’s own defaults — tune them to match your installation’s actual configuration if you’ve changed those.
  • deploy/observability/grafana-dashboard.json — HTTP request rate, error rate, and latency; fulfillment job outcomes; payment settlement classifications; webhook signature failures; dependency health; and maintenance-mode state. Every panel is built from a metric Health, metrics, and logs confirms is actually written — nothing here queries a dead series.
Import both with promtool / Grafana’s dashboard import, pointed at whatever scrapes /metrics on api and worker in your deployment.

External side effects: retries, dead letters, reconciliation

Graceful degradation

Capacity guidance

Omniflow ships as a single Docker Compose stack — see Deployment — and job concurrency (the critical queue’s 16 workers) is compiled into internal/jobs/client.go today, not an environment-configurable knob. Capacity planning on a single host is therefore about giving PostgreSQL and Valkey enough resources, not about tuning queue concurrency. These are starting points for capacity planning, not a load-tested ceiling — no throughput benchmark ships with the repository today. Watch the SLIs above under your own traffic and adjust from there.

Health, metrics, and logs

The probes, metrics, and alerts these SLIs and dashboards are built from.

Jobs and queues

Retry policy, the dead-letter view, and the transactional outbox in full.

Maintenance mode

What automatic detection watches and what it does when a window opens.

Backup, restore, and disaster recovery

The restore drill, and what a host-level disaster needs beyond it.