import { OpenWorkflow } from "openworkflow";
import { BackendPostgres } from "openworkflow/postgres";
const backend = await BackendPostgres.connect(
process.env.OPENWORKFLOW_POSTGRES_URL,
);
const ow = new OpenWorkflow({ backend });
// Version 1 - for existing runs
ow.implementWorkflow(
{ name: "process-order", version: "1.0.0" },
async ({ input, step }) => {
await step.run({ name: "validate" }, () => validateOrderV1(input));
await step.run({ name: "process" }, () => processV1(input));
},
);
// Version 2 - for new runs
ow.implementWorkflow(
{ name: "process-order", version: "2.0.0" },
async ({ input, step }) => {
await step.run({ name: "validate-v2" }, () => validateOrderV2(input));
await step.run({ name: "process-v2" }, () => processWithNewLogic(input));
},
);
const worker = ow.newWorker();
await worker.start();