Skip to content

Latest commit

 

History

1,255 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenWorkflow

npm build coverage pkg.pr.new

OpenWorkflow is a TypeScript framework for building durable, resumable workflows that can pause for seconds or months, survive crashes and deploys, and resume exactly where they left off - all without extra servers to manage.

OpenWorkflow v1 is on the way. We're focused on getting it ready. Until then, the README and docs cover the current 0.x release. There isn't a release date yet, but you can follow along and get updates in our Discord.

OpenWorkflow Dashboard

import { defineWorkflow } from "openworkflow";

export const sendWelcomeEmail = defineWorkflow(
  { name: "send-welcome-email" },
  async ({ input, step }) => {
    const user = await step.run({ name: "fetch-user" }, async () => {
      return await db.users.findOne({ id: input.userId });
    });

    await step.run({ name: "send-email" }, async () => {
      return await resend.emails.send({
        from: "me@example.com",
        to: user.email,
        replyTo: "me@example.com",
        subject: "Welcome!",
        html: "<h1>Welcome to our app!</h1>",
      });
    });

    await step.run({ name: "mark-welcome-email-sent" }, async () => {
      await db.users.update(input.userId, { welcomeEmailSent: true });
    });

    return { user };
  },
);

Quick Start

# npm
npx @openworkflow/cli init

# pnpm
pnpx @openworkflow/cli init

# bun
bunx @openworkflow/cli init

The CLI will guide you through setup and generate everything you need to get started.

Documentation

Architecture

Read ARCHITECTURE.md for a deep dive into how OpenWorkflow works under the hood.

Examples

Check out examples/ for working examples.

Contributing

We welcome contributions! Please read CONTRIBUTING.md before submitting a pull request.

Community

About

Open-source TypeScript framework for building durable, resumable workflows. Supports Node.js and Bun.

Topics

Resources

Contributing

Stars

1.3k stars

Watchers

4 watching

Forks

Releases

Used by

Contributors

Languages