---
path: /studio/yemaya/event-handlers
surface: studio
domain: yemaya
auth: signed-in + studio entitlement
source: apps/oshun/web/src/app/studio/yemaya/event-handlers/page.tsx
status: walked
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)'
---

# Studio · Yemaya · Event Handlers

## Purpose

Aggregator workspace that composes the Yemaya event-handling admin lanes —
workers, the API console, and cross-domain integration — under a four-card
capability summary. It issues no `/v1` fetch of its own; each embedded lane runs
its own real-backed engine.

## Entry points

- Breadcrumb chain on this page: **Studio › Yemaya Workers › Event Handlers**.
- Reachable from the Studio index and from sibling Yemaya routes.
- Direct URL / bookmark (signed-in + studio entitlement).

## Layout regions

`page.tsx` renders `ShellLayout active="studio"` and:

- **Breadcrumbs panel** (`data-yemaya-event-handlers-breadcrumbs`): Studio ›
  Yemaya Workers › Event Handlers.
- **Workspace panel** (`StudioYemayaEventHandlersWorkspace`,
  `data-yemaya-event-handlers-workspace`):
  - `<h1>` "Yemaya Event Handlers Workspace" (`WorkspaceHeading`).
  - Summary paragraph (`data-yemaya-event-handlers-summary`).
  - **Capability Summary** (`data-yemaya-event-handlers-capability-summary`):
    `<h2>` + four cards — Handler Orchestration, Worker Execution Lane,
    Integration and State Governance, Security and Parity.
  - **Workers Lane** (`data-yemaya-event-handlers-workers-lane`) — embedded
    `StudioYemayaWorkersWorkspace`.
  - **API Lane** (`data-yemaya-event-handlers-api-lane`) — embedded
    `StudioYemayaApiWorkspace`.
  - **Cross-Domain Integration Lane**
    (`data-yemaya-event-handlers-cross-domain-lane`) — embedded
    `StudioYemayaCrossDomainIntegrationWorkspace` (the mapping-validator console
    documented in [`studio-yemaya-cross-domain-integration.md`](./studio-yemaya-cross-domain-integration.md)).
- **Route Map panel** (`data-yemaya-event-handlers-route-map`): `<h2>` "Route
  Map" + six `STUDIO_YEMAYA_EVENT_HANDLERS_ROUTE_MAP` entries.
- **Quick-action panel**: four `quickAction` links.

## States

Per embedded lane (this page has no fetch of its own):

- [ ] **Workers Lane** — itself an aggregator of three worker sub-lanes.
- [ ] **API Lane** — its own loading / unauthorized / error / ready / result
      states.
- [ ] **Cross-Domain Integration Lane** — see
      [`studio-yemaya-cross-domain-integration.md`](./studio-yemaya-cross-domain-integration.md).
- [ ] **Capability Summary** — static four-card panel, always rendered.

## Interactions

### Breadcrumbs

- [ ] **"Studio"** (link) → `/studio`
- [ ] **"Yemaya Workers"** (link) → `/studio/yemaya/workers`
- [ ] **"Event Handlers"** (current page) — `aria-current="page"`.

### Embedded lanes

- [ ] **Workers Lane** — `StudioYemayaWorkersWorkspace`; see
      [`studio-yemaya-workers.md`](./studio-yemaya-workers.md).
- [ ] **API Lane** — `StudioYemayaApiWorkspace`.
- [ ] **Cross-Domain Integration Lane** —
      `StudioYemayaCrossDomainIntegrationWorkspace`; see
      [`studio-yemaya-cross-domain-integration.md`](./studio-yemaya-cross-domain-integration.md).

### Route map

`data-yemaya-event-handlers-route-map` — six entries:

- [ ] `/studio/yemaya/event-handlers`
- [ ] `/studio/yemaya/event-handlers/subscriptions/[subscriptionId]`
- [ ] `/studio/yemaya/event-handlers/queues/[queueId]`
- [ ] `/studio/yemaya/event-handlers/retries/[retryId]`
- [ ] `/studio/yemaya/event-handlers/parity/[parityId]`
- [ ] `/studio/yemaya/event-handlers/governance/[policyId]`

### Quick actions

- [ ] **"Open Yemaya Workers workspace"** → `/studio/yemaya/workers`.
- [ ] **"Open Yemaya API workspace"** → `/studio/yemaya/api`.
- [ ] **"Open Yemaya Cross-Domain Integration workspace"** →
      `/studio/yemaya/cross-domain-integration`.
- [ ] **"Back to Studio workspace index"** → `/studio`.

## Data & contracts

- **Reads / Writes**: none at the aggregator boundary; each embedded lane issues
  its own admin GET catalog + POST verb.
- **Realtime**: none.
- **Caching**: delegated to the embedded lanes (client fetch on mount,
  `cache: 'no-store'`).
- **Auth/role check**: admin-scoped fail-closed inside each lane, behind the
  proxy studio gate.

## Cross-references

- Studio overview: [`studio-overview.md`](../../studio-overview.md)
- Workspace source:
  `apps/oshun/web/src/components/studio/StudioYemayaEventHandlersWorkspace.tsx`
- Route map source:
  `apps/oshun/web/src/components/studio/StudioYemayaEventHandlersRouteMap.ts`
- Embedded lane:
  `apps/oshun/web/src/components/studio/StudioYemayaCrossDomainIntegrationWorkspace.tsx`
- Sibling per-view docs:
  [`studio-yemaya-workers.md`](./studio-yemaya-workers.md),
  [`studio-yemaya-cross-domain-integration.md`](./studio-yemaya-cross-domain-integration.md)
- Feature spec: [`V1/features.md`](../../../../V1/features.md)

## Open questions / known gaps

- [ ] The Route Map advertises subscriptions / queues / retries / parity /
      governance sub-routes; confirm whether those dynamic children exist as
      `page.tsx` files yet.
