workflow
Version:
Workflow SDK - Build durable, resilient, and observable workflows
56 lines (44 loc) • 2.3 kB
text/mdx
---
title: World SDK
description: Low-level API for inspecting and managing workflow runs, steps, events, hooks, streams, and queues.
type: overview
summary: Access workflow infrastructure via await getWorld() for building observability dashboards, admin tools, and custom integrations.
prerequisites:
- /docs/api-reference/workflow-runtime/get-world
keywords:
- getWorld
- World SDK
- workflow runtime
- observability dashboard
- admin panel
- workflow management
---
The World SDK provides direct access to workflow infrastructure — runs, steps, events, hooks, streams, and queues. Use it to build observability dashboards, admin panels, debugging tools, and custom workflow management logic.
```typescript lineNumbers
import { getWorld } from "workflow/runtime";
const world = await getWorld(); // [!code highlight]
```
<Cards>
<Card href="/docs/api-reference/workflow-runtime/world/storage" title="Storage">
Query runs, steps, hooks, and the underlying event log.
</Card>
<Card href="/docs/api-reference/workflow-runtime/world/streams" title="Streams">
Read, write, and manage real-time data streams for workflow runs.
</Card>
<Card href="/docs/api-reference/workflow-runtime/world/queue" title="Queue">
Low-level queue dispatch (internal SDK infrastructure).
</Card>
</Cards>
<Callout type="info">
The World SDK is the low-level foundation that higher-level functions like [`getRun()`](/docs/api-reference/workflow-api/get-run) and [`start()`](/docs/api-reference/workflow-api/start) are built on. Use it when you need capabilities beyond what those functions provide.
</Callout>
Step input/output data is serialized using the [devalue](https://github.com/Rich-Harris/devalue) format. To display this data in your UI, use the hydration utilities from `workflow/observability`:
```typescript lineNumbers
import { hydrateResourceIO, observabilityRevivers } from "workflow/observability"; // [!code highlight]
const step = await world.steps.get(runId, stepId);
const hydrated = hydrateResourceIO(step, observabilityRevivers); // [!code highlight]
console.log(hydrated.input, hydrated.output);
```
See [`workflow/observability`](/docs/api-reference/workflow-observability) for the full API.