The dashboard in Filament#
To follow the workflows of a Laravel application from a Filament panel, install
gplanchat/durable-filament (Packages) and register the plugin on the panel:
use Gplanchat\Durable\Filament\DurableFilamentPlugin;
$panel->plugin(DurableFilamentPlugin::make());The panel then shows Durable runs in its navigation. It works on Filament 3 and 4, reads the
catalog that gplanchat/durable-laravel binds (in memory, Illuminate or Temporal), and is
read-only.
Screenshots#

Durable runs, over four runs of an order workflow. The counters include one run waiting for a worker.

The run page of order/4244: what it waits on, and a History timeline where reserveStock is hatched for the time it spent in the queue.
What the page offers#
- The backend state, dated.
- Counters per outcome, with a Waiting for a worker count, over the runs on the page.
- Filters on outcome, and on workflow name and execution id prefix where the backend can apply them. The filters stay set from one page to the next.
- Worker presence, above the list, on the Temporal backend: for each
durable:temporal-workerrole, workflow and activity, whether a worker polled its task queue in the last 120 seconds. On the Illuminate backend, the panel reads “Could not ask”: Laravel’s queue keeps no list of the processes that runphp artisan queue:work. The in-memory backend runs every task in the process that starts it, and the page shows no panel. - The run list, 20 a page, forward by cursor. Each row carries the execution id (a link to the run), the outcome, the workflow, the start date and a note (
waiting for a worker,waiting on …). - A run page, opened from a row: outcome, what it waits on, its Nexus operations where the catalog can list them, and its history, one block per action, under a timeline. See Read a run.
What it does not show#
There is no worker presence row for durable:nexus-worker. See Parity.
Language and payloads#
English and French. A payload unfolds on demand and is masked by what your application binds
Gplanchat\Durable\Observation\PayloadRedactorInterface to in the container; the key-name redactor
applies otherwise.