Release v1.0.0
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@latestHighlights
- 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. Clientis a sub-interface ofContext. Every launchedContextis aClient, so the duplicatedClient*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 | DBOSContext → Context, NewDBOSContext → NewContext; Shutdown returns an error |
| Client | Client* generics removed; Enqueue[P,R] → Enqueue[R,P] (same for Debouncer) |
| Queues | NewWorkflowQueue → RegisterQueue (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.Contextchanged 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