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, 03:03 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:03 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:03 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:03 am | cashflow_recalc | 11 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 6 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:02 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 am | cashflow_recalc | 6 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 am | cashflow_recalc | 3 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 am | cashflow_recalc | 4 ms | 0 | Success | — | |
Show run details{
"message": "queue empty"
} | ||||||
| 09 June 2026, 03:01 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. | |||||||