mcpField
D
dbos-typescript

dbos-typescript

github.com/sickn33Development49.2k70 installsUpdated today
Repository

About dbos-typescript

A best-practices skill for building reliable TypeScript applications with DBOS durable workflows. It guides developers through configuration, workflow and step design, queues, communication, testing, and client use.

Key features

  1. 01Configure and launch DBOS
  2. 02Structure deterministic workflows
  3. 03Run external operations as steps
  4. 04Control concurrency with queues
  5. 05Use workflow communication patterns
  6. 06Test DBOS applications

Use cases

  1. 01Add DBOS to a TypeScript application
  2. 02Build workflows with durable steps
  3. 03Limit concurrent workflow execution
  4. 04Test DBOS applications

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill dbos-typescript

After installing, type/dbos-typescriptin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

AGENTS.md
CLAUDE.md
references/
advanced-patching.md
advanced-versioning.md
_sections.md
client-setup.md
client-enqueue.md
comm-events.md
comm-messages.md
comm-streaming.md
lifecycle-config.md
pattern-debouncing.md
pattern-idempotency.md
pattern-classes.md
lifecycle-express.md
pattern-scheduled.md
pattern-sleep.md
queue-basics.md
queue-deduplication.md
queue-concurrency.md
queue-listening.md
queue-partitioning.md
workflow-control.md
step-basics.md
step-transactions.md
workflow-background.md
step-retries.md
workflow-constraints.md
queue-rate-limiting.md
test-setup.md

Details

From the project README

DBOS TypeScript Best Practices

Guide for building reliable, fault-tolerant TypeScript applications with DBOS durable workflows.

When to Use

Reference these guidelines when:

  • Adding DBOS to existing TypeScript code
  • Creating workflows and steps
  • Using queues for concurrency control
  • Implementing workflow communication (events, messages, streams)
  • Configuring and launching DBOS applications
  • Using DBOSClient from external applications
  • Testing DBOS applications

Rule Categories by Priority

PriorityCategoryImpactPrefix
1LifecycleCRITICALlifecycle-
2WorkflowCRITICALworkflow-
3StepHIGHstep-
4QueueHIGHqueue-
5CommunicationMEDIUMcomm-
6PatternMEDIUMpattern-
7TestingLOW-MEDIUMtest-
8ClientMEDIUMclient-
9AdvancedLOWadvanced-

Critical Rules

Installation

Install a supported SDK version compatible with the existing application and pin it in the lockfile. For a new project, first verify the current official release:

npm install @dbos-inc/dbos-sdk@<verified-version>
DBOS Configuration and Launch

A DBOS application MUST configure and launch DBOS before running any workflows:

import { DBOS } from "@dbos-inc/dbos-sdk";

async function main() {
  DBOS.setConfig({
    name: "my-app",
    systemDatabaseUrl: process.env.DBOS_SYSTEM_DATABASE_URL,
  });
  await DBOS.launch();
  await myWorkflow();
}

main().catch(error => { console.error(error); process.exitCode = 1; });
Workflow and Step Structure

Workflows are comprised of steps. Any function performing complex operations or accessing external services must be run as a step using DBOS.runStep:

import { DBOS } from "@dbos-inc/dbos-sdk";

async function fetchData() {
  return await fetch("https://api.example.com").then(r => r.json());
}

async function myWorkflowFn() {
  const result = await DBOS.runStep(fetchData, { name: "fetchData" });
  return result;
}
const myWorkflow = DBOS.registerWorkflow(myWorkflowFn);
Key Constraints
  • Do NOT call, start, or enqueue workflows from within steps
  • Do NOT use threads or uncontrolled concurrency to start workflows - use DBOS.startWorkflow or queues
  • Workflows MUST be deterministic - non-deterministic operations go in steps
  • Do NOT modify global variables from workflows or steps

How to Use

Read individual rule files for detailed explanations and examples:

references/lifecycle-config.md
references/workflow-determinism.md
references/queue-concurrency.md

References

Limitations

  • Examples are version-specific sketches; verify signatures and migration guidance against the installed SDK. Register workflows/steps before launch. Keep database credentials private.
  • Step replay/retries can repeat external effects. Use stable provider-side idempotency keys and application transactions; a workflow ID alone does not guarantee a card is charged only once.
  • Database reset, cancellation, resume and fork examples require an explicit target and authorization; they may destroy data, bypass queue limits or repeat effects.
  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

Comments

Markdown supported