> ## Documentation Index
> Fetch the complete documentation index at: https://openworkflow.dev/llms.txt
> Use this file to discover all available pages before exploring further.
# The open source workflow engine
> OpenWorkflow is an open-source durable workflow engine for TypeScript, powered by PostgreSQL or SQLite.
## What is OpenWorkflow?
OpenWorkflow is a TypeScript framework that makes multi-step operations durable.
Wrap each operation in a step, and OpenWorkflow remembers which steps already
finished. If anything crashes, the workflow picks up right where it left off —
completed steps are never re-run.
```ts theme={null}
import { defineWorkflow } from "openworkflow";
export const processOrder = defineWorkflow(
{ name: "process-order" },
async ({ input, step }) => {
// if the server crashes after this step, the card is NOT charged again
await step.run({ name: "charge-card" }, async () => {
await payments.charge(input.orderId);
});
await step.run({ name: "send-confirmation" }, async () => {
await emails.send({ to: input.email, subject: "Order confirmed!" });
});
},
);
```
## Features