Context. surface studio · domain aja · route /studio/aja/distributed-workers · auth signed-in + studio entitlement · source apps/oshun/web/src/app/studio/aja/distributed-workers/page.tsx
Last walked. 2026-05-29 automated runtime walk (Playwright headless) — render, /v1 data (2xx), console/page-errors, expected content, screenshot verified; live screen-reader, touch, offline, and telemetry-delivery checks pending a manual AT pass. Evidence: WALKTHROUGH/results/runtime-sweep-2026-05-29.md ; body re-derived 2026-06-03 from current source (lane-console architecture)
Purpose#
Aggregator workspace that composes five sibling Aja lane consoles into one
distributed-execution surface: Distributed Processing, Batch Operations, Batch
Inference, Job Lifecycle, and Queue Statistics. It owns no /v1 fetch; live
data and controls come from the embedded leaves. The page adds a Capability
Summary, a breadcrumb, a Route Map, and a quick-action lane.
Entry points#
- Direct URL / bookmark —
/studio/aja/distributed-workers. - Studio nav — Domain-bridge studios section of
/studio. - Breadcrumb parent —
/studio/aja/distributed-processing. - Quick-actions — Distributed Processing, Batch Operations, Batch Inference, Job Lifecycle, Queue Statistics.
Layout regions#
page.tsx renders inside <ShellLayout active="studio">:
- Breadcrumb panel (
data-aja-distributed-workers-breadcrumbs):<nav aria-label="Aja Distributed Workers breadcrumbs">→Studio(link) /Aja Distributed Processing(link →/studio/aja/distributed-processing) /Distributed Workers(aria-current="page"). - Workspace
<StudioAjaDistributedWorkersWorkspace />:<h1>"Aja Distributed Workers Workspace" + summary (data-aja-distributed-workers-summary).- Capability Summary (
data-aja-distributed-workers-capability-summary,<h2>) — 4 cards (data-aja-distributed-workers-capability=<id>): Worker Control Plane, Diagnostics and Trace Observability, Security/Permission/Audit Controls, API Parity and Contract Assurance. - Distributed Processing Lane
(
data-aja-distributed-workers-distributed-processing-lane) → embeds<StudioAjaDistributedProcessingWorkspace />. - Batch Operations Lane
(
data-aja-distributed-workers-batch-operations-lane) → embeds<StudioAjaBatchOperationsWorkspace />. - Batch Inference Lane (
data-aja-distributed-workers-batch-inference-lane) → embeds<StudioAjaBatchInferenceWorkspace />. - Job Lifecycle Lane (
data-aja-distributed-workers-job-lifecycle-lane) → embeds<StudioAjaJobLifecycleWorkspace />. - Queue Statistics Lane (
data-aja-distributed-workers-queue-statistics-lane) → embeds<StudioAjaQueueStatisticsWorkspace />.
- Route Map panel (
data-aja-distributed-workers-route-map,<h2>"Route Map"): 6STUDIO_AJA_DISTRIBUTED_WORKERS_ROUTE_MAPentries. - Quick-action lane: five
Link.quickActionanchors (no self-link).
States#
No own data fetch; runtime state is per embedded lane (each leaf runs its own Loading / Unauthorized / Error / Ready lifecycle).
- Loading — per embedded lane.
- Unauthorized — per embedded lane (admin-scope 401/403).
- Error — per embedded lane.
- Populated — all five lanes render.
- Empty — N/A; cards and lanes always render.
Interactions#
Breadcrumb#
- "Studio" →
/studio - "Aja Distributed Processing" →
/studio/aja/distributed-processing - "Distributed Workers" —
aria-current="page"
Workspace body#
- Capability cards (4) — non-interactive.
- Distributed Processing Lane → embeds
StudioAjaDistributedProcessingWorkspace. - Batch Operations Lane → embeds
StudioAjaBatchOperationsWorkspace(see./studio-aja-batch-operations.md). - Batch Inference Lane → embeds
StudioAjaBatchInferenceWorkspace. - Job Lifecycle Lane → embeds
StudioAjaJobLifecycleWorkspace. - Queue Statistics Lane → embeds
StudioAjaQueueStatisticsWorkspace.
Route Map#
- Route entries (6) — non-interactive listing.
Quick-action lane#
- "Open Aja Distributed Processing workspace" →
/studio/aja/distributed-processing - "Open Aja Batch Operations workspace" →
/studio/aja/batch-operations - "Open Aja Batch Inference workspace" →
/studio/aja/batch-inference - "Open Aja Job Lifecycle workspace" →
/studio/aja/job-lifecycle - "Open Aja Queue Statistics workspace" →
/studio/aja/queue-statistics - "Back to Studio workspace index" →
/studio
Data & contracts#
- Reads: none at page level — delegated to the embedded leaves (e.g. Batch
Operations reads
/v1/admin/aja/batch-operations; the other lanes fetch their own catalogs on mount). - Writes: none at page level; each leaf fires its own POST verbs.
- Realtime: none.
- Caching: client fetch on mount (
cache: 'no-store') per leaf; SSR shell. - Auth/role check: BFF endpoints admin-scoped + fail-closed per lane; route gated signed-in + studio via proxy.
Cross-references#
- Parent:
../../studio-overview.md - Sibling (embedded as a lane):
./studio-aja-batch-operations.md - Component sources:
apps/oshun/web/src/components/studio/StudioAjaDistributedWorkersWorkspace.tsxapps/oshun/web/src/components/studio/StudioAjaDistributedWorkersRouteMap.ts
Open questions / known gaps#
- Distributed Processing, Batch Inference, Job Lifecycle, and Queue Statistics lanes are not yet in this walkthrough sweep — link once those files are created.