Comment by KraftyOne

2 days ago

The state can be stored in any Postgres instance, either locally or in any cloud.

For code, here's the bare minimum code example for a workflow:

  class Example {
    @DBOS.step()
    static async step_one() {
      ...
    }

    @DBOS.step()
    static async step_two() {
      ...
    }

    @DBOS.workflow()
    static async workflow() {
      await Example.step_one()
      await Example.step_two()
    }
  }

The steps can be any TypeScript function.

Then we have a bunch more examples in our docs: https://docs.dbos.dev/.

Or if you want to try it yourself download a template:

    npx @dbos-inc/create

Are there any constraints around which functions can be turned into steps? I assume their state (arguments?) need to be serializable?

Also, what happens with versioning? What if I want to deploy new code?