Custom durable queue Worker picks up pending jobs and runs handlers idempotently. Retry policy: max_attempts default 3 with exponential backoff via run_after.
Cross-tenant process telemetry from worker_runs + worker_heartbeats (13 watchdogs registered — see docs/metrics.md). Last 50 runs under all tenants.
| Started | Watchdog | Duration | Actioned | Status | Error | Action |
|---|---|---|---|---|---|---|
| 09 June 2026, 01:44 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:44 am | webhook_dispatcher | 5 ms | 0 | Success | — | |
Show run details{
"sent": 0,
"failed": 0,
"retried": 0,
"failedPermanent": 0
} | ||||||
| 09 June 2026, 01:44 am | xero_dispatcher | 4 ms | 0 | Success | — | |
Show run details{
"sent": 0,
"retry": 0,
"failed": 0,
"no_work": 1,
"creds_missing": 0
} | ||||||
| 09 June 2026, 01:44 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:44 am | contract_rollup_watchdog | 3 ms | 0 | Success | — | |
Show run details{
"message": "All contract rollups are in lock-step with their source rows.",
"failures": [],
"sampleRefs": []
} | ||||||
| 09 June 2026, 01:44 am | ocr_dispatcher | 3 ms | 0 | Success | — | |
Show run details{
"failed": 0,
"no_work": 1,
"completed": 0,
"not_configured": 0
} | ||||||
| 09 June 2026, 01:44 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:44 am | email_dispatcher | 4 ms | 0 | Success | — | |
Show run details{
"dlq": 0,
"sent": 0,
"driver": "log",
"failed": 0,
"retried": 0,
"suppressedDropped": 0,
"suppressedCancelled": 0
} | ||||||
| 09 June 2026, 01:44 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:44 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | webhook_dispatcher | 3 ms | 0 | Success | — | |
Show run details{
"sent": 0,
"failed": 0,
"retried": 0,
"failedPermanent": 0
} | ||||||
| 09 June 2026, 01:43 am | xero_dispatcher | 3 ms | 0 | Success | — | |
Show run details{
"sent": 0,
"retry": 0,
"failed": 0,
"no_work": 1,
"creds_missing": 0
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 5 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | webhook_dispatcher | 5 ms | 0 | Success | — | |
Show run details{
"sent": 0,
"failed": 0,
"retried": 0,
"failedPermanent": 0
} | ||||||
| 09 June 2026, 01:43 am | xero_dispatcher | 4 ms | 0 | Success | — | |
Show run details{
"sent": 0,
"retry": 0,
"failed": 0,
"no_work": 1,
"creds_missing": 0
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | email_dispatcher | 4 ms | 0 | Success | — | |
Show run details{
"dlq": 0,
"sent": 0,
"driver": "log",
"failed": 0,
"retried": 0,
"suppressedDropped": 0,
"suppressedCancelled": 0
} | ||||||
| 09 June 2026, 01:43 am | contract_rollup_watchdog | 4 ms | 0 | Success | — | |
Show run details{
"message": "All contract rollups are in lock-step with their source rows.",
"failures": [],
"sampleRefs": []
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 6 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | ocr_dispatcher | 4 ms | 0 | Success | — | |
Show run details{
"failed": 0,
"no_work": 1,
"completed": 0,
"not_configured": 0
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:43 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:42 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:42 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 01:42 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
Audit row per standard-report query and per Live Slice invocation (report_runs table — reports engine). Last 50 rows under your tenant.
| Timestamp | Kind | Duration | Rows | Status | Invoked by | Error | Action |
|---|---|---|---|---|---|---|---|
| No report runs recorded. | |||||||