Skip to content

Release v1.0.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 17:12
· 11 commits to main since this release
090b745

v1.0.0

v1 is a breaking release — see the Upgrading guide for the full migration, including a suggested order and a sed-able rename list.

go get github.com/dbos-inc/dbos-transact-golang@latest

Highlights

  • Queues and schedules are database-backed. Both can now be created at any time, including after launch and from a Client, and are visible across every process sharing the system database. This deprecates the previous in-memory interfaces.
  • Client is a sub-interface of Context. Every launched Context is a Client, so the duplicated Client* generics are gone — one set of package-level functions works from inside an app or from an external process.
  • SQLite is an optional driver. Postgres-only apps no longer compile or link modernc.org/sqlite.

Breaking changes

Area Change
Core DBOSContextContext, NewDBOSContextNewContext; Shutdown returns an error
Client Client* generics removed; Enqueue[P,R]Enqueue[R,P] (same for Debouncer)
Queues NewWorkflowQueueRegisterQueue (returns an error); WithQueue takes a Queue, not a name
Schedules WithSchedule removed → CreateSchedule + ScheduleSpec after launch
Errors *DBOSError*Error; codes renamed to ErrorCode*; sentinels added
Options List filters With*WithFilter* (several now variadic); step retries With*WithStep*
Steps RunAsTransaction, Enqueue, Go, GetResult, and management writes are rejected inside step bodies
SQLite Requires import _ "github.com/dbos-inc/dbos-transact-golang/dbos/driver/sqlite"

Before you upgrade

  • Drain pending debounces. A debounce still pending at deploy time will not fire under v1.
  • Gob-serializer apps: drain scheduled firings. ScheduledWorkflowInput.Context changed type and old gob-encoded firings cannot be decoded. JSON apps are unaffected.
  • One additive system-database migration runs on first v1 startup. v0.x and v1 executors can share a system database during a rolling upgrade.

What's Changed

  • Small fixes (v1.0.0-rc.1 p1) by @maxdml in #395
  • v1.0.0-rc.1 staging PR by @maxdml in #396
  • Driver registration by @maxdml in #407
  • Debouncer delayed workflows by @maxdml in #408
  • Re-stamp workflow executor_id when successfully checkpointing a step by @maxdml in #411
  • chore: normalize GitHub Actions workflow formatting by @azghr in #414
  • Update workflow status with a final result only when status is PENDING by @maxdml in #417
  • Restrict nested steps by @maxdml in #420

Full Changelog: v0.20.0...v1.0.0