HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
dbos-inc
dbos-transact-golang
Go2025–2026
dbos-inc / dbos-transact-golang

dbos-transact-golang

Database-Backed Durable Golang Workflows

10Distinct people
10Mentions
1Explicit recommenders
871GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Database-Backed Durable Golang Workflows

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

Interesting, it's not mentioned anywhere in the https://github.com/dbos-inc/dbos-transact-golang README. By contrast, Postgres is mentioned right at the top. I recommend…

bbkane used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month10 dated mentions

Observed mentions: 2025-09-09 19:50:45 UTC to 2026-08-30 17:06:11 UTC.

012342025-09-01 00:00:00 UTC to 2025-10-01 00:00:00 UTC (exclusive): 4 mentions; 2 submissions, 2 commentsSep 20252025-10-01 00:00:00 UTC to 2025-11-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025-11-01 00:00:00 UTC to 2025-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-12-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-01-01 00:00:00 UTC to 2026-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-02-01 00:00:00 UTC to 2026-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsFeb 20262026-03-01 00:00:00 UTC to 2026-04-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2026-04-01 00:00:00 UTC to 2026-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-05-01 00:00:00 UTC to 2026-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-06-01 00:00:00 UTC to 2026-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-01 00:00:00 UTC to 2026-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-08-01 00:00:00 UTC to 2026-09-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsAug 2026

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Sep 20252025-09-01 00:00:00 UTC2025-10-01 00:00:00 UTC422
Oct 20252025-10-01 00:00:00 UTC2025-11-01 00:00:00 UTC202
Nov 20252025-11-01 00:00:00 UTC2025-12-01 00:00:00 UTC000
Dec 20252025-12-01 00:00:00 UTC2026-01-01 00:00:00 UTC101
Jan 20262026-01-01 00:00:00 UTC2026-02-01 00:00:00 UTC000
Feb 20262026-02-01 00:00:00 UTC2026-03-01 00:00:00 UTC000
Mar 20262026-03-01 00:00:00 UTC2026-04-01 00:00:00 UTC202
Apr 20262026-04-01 00:00:00 UTC2026-05-01 00:00:00 UTC000
May 20262026-05-01 00:00:00 UTC2026-06-01 00:00:00 UTC000
Jun 20262026-06-01 00:00:00 UTC2026-07-01 00:00:00 UTC000
Jul 20262026-07-01 00:00:00 UTC2026-08-01 00:00:00 UTC000
Aug 20262026-08-01 00:00:00 UTC2026-09-01 00:00:00 UTC101

What Hacker News says

10 sources
KraftyOne·Sep 24, 2025Submission

Show HN: Postgres-Backed Durable Workflows in Go

Hi HN - I’m Peter, here with Max (hmaxdml), and we’re building DBOS Go, an open-source Go library for durable workflows, backed by Postgres. https://github.com/dbos-inc/dbos-transact-golang DBOS workflows make your programs durable by automatically checkpointing their state to Postgres. If your program crashes or fails, all workflows seamlessly resume from their last completed step when your program restarts. This durability makes workflows useful for solving many different problems, including: - Operating an AI agent, or anything that connects to an unreliable or non-deterministic API. - Building observable and fault-tolerant data pipelines. - Orchestrating business processes so they seamlessly recover from any failure. - Running reliable background jobs with no timeouts. - Processing incoming events (e.g. from Kafka) exactly once What’s
Read the rest
unique about DBOS is that it's just a Go package--all you need to add durable workflows to your app is included in this library (plus Postgres). There's no separate service or orchestrator to run, so you can incrementally add it to an existing Go application without rearchitecting anything. Also, because it’s all Postgres-backed, you get all the tooling you’re familiar with: backups, GUIs, CLI tools–it all just works. You can use Supabase, RDS, Neon, or any other Postgres provider. If you want to try it out, check out the quickstart: https://docs.dbos.dev/quickstart We'd love to hear what you think! We’ll be in the comments for the rest of the day to answer any questions.
5 points · Open discussion
:wave: Hey there, I'm working on the Go library and just wanted to confirm your suspicion: "since Golang doesn't have decorators in the same way Python does, we still have to have code doing the kind of "manual callback" style I mentioned" That's exactly right, specifically for steps. We considered other ways to wrap the workflow calls (so you don't have to do dbos.RunWorkflow(yourFunction)), but they got in the way of providing compile time type checking. As Qian said, under the hood the Golang SDK is an embedded orchestration package that just requires Postgres to automate state management. For example, check the RunWorkflow implementation: https://github.com/dbos-inc/dbos-transact-golang/blob/0afae2... It does all the durability logic in-line with your code and doesn't rely on an external service. Thanks for taking the time to share yo
Read the rest
ur insights! This was one of the most interesting HN comment I've seen in a while :)
In I solved a distributed queue problem after 15 years
That's a very appealing approach from a developer ergonomics perspective; it'd be very nice to only have to deploy your own application and not also deploy a coordinator. You mention that you don't have to rewrite your application to work around how DBOS operates. That seems somewhat true, but I think DBOS still requires folks to rewrite their code around a custom runtime. Looking at the Python code on your home page, it seems like you're leveraging Python's decorators to make the "glue code" less prominent (registering functions with the async executor, telling the async system to invoke certain registered functions), but the glue code is still there. If I go look at the DBOS library for Golang[1] for example, since Golang doesn't have decorators in the same way Python does, we still have to have code doing the kind of "manual callback"
Read the rest
style I mentioned: // code is massively paraphrased for brevity, err checks removed func workflow(dbosCtx dbos.DBOSContext, _ string) (string, error) { _, err := dbos.RunAsStep(dbosCtx, func(ctx) (string, error) { return stepOne(ctx) }) return dbos.RunAsStep(dbosCtx, func(ctx) (string, error) { return stepTwo(ctx) }) } func main() { // Initialize a DBOS context dctx, err := dbos.NewDBOSContext(dbos.Config{ DatabaseURL: "...", AppName: "myapp", }) // Register a workflow dbos.RegisterWorkflow(dctx, workflow) // Launch DBOS err = dctx.Launch() defer dctx.Cancel() // Run a durable workflow and get its result handle, err := dbos.RunWorkflow(dctx, workflow, "") res, err := handle.GetResult() fmt.Println("Workflow result:", res) } I don't think that's a bad thing though, I think that's a good thing. I feel like positioning DBOS as a _library_ is an excellent choice, it's a huge ergonomics improvement. The choices so far seem like you're trying to make DBOS easy to adopt via appropriate amounts of convenience features, but not so much automagic that we-the-devs can't reason about what's going on. With developer reasoning in mind, I have some more questions for you! In the architecture page you linked[2], you talk about versioning. Versioning with durable workflows is one of those super-annoying things which affect the entire paradigm, albiet only once you've already adopted the tech and start having to change/evolve/maintain workflows. In that doc, you say that with DBOS each application will only work on workflows started by application versions which match the current application version. For completing long-running workflows, the page says: > To safely recover workflows started on an older version of your code, you should start a process running that code version. Since one of the killer apps of durable workflows are, as I mentioned, typically long-running jobs, do you have any products/advice/documentation for this pattern of running multiple application versions, and how one might approach implementing this practice? If we're writing code which takes a week to complete and may exit and recover many times before finally completing, do you have advice on how to keep each version deployed till all the work for a version is completed? Looking at Temporal, when using their Worker versioning scheme they offer ways for users to look this information up in Temporal, but not much guidance on actually implementing the pattern. Looking at the DBOS docs about versioning, I see information about getting this information via e.g. Conductor, but I also do not see any info about actually implementing multiple-concurrent-worker-version deployment (which Temporal calls "rainbow deployments"). Is version management something y'all are thinking about improving the ergonomics of, in the same way you improved ergonomics by bringing the executor in-process? Speaking about versioning, how does DBOS handle cases around bugfix versions? Where you deploy a version A, but A has a bug in it. You would like to make the fix and deploy that fix as version B, then ideally, run the remaining workflows for Version A using the code in Version B. It seems like "version forking"[3] is the only way to do this, but it also seems like it's a special operation that cannot be done via a code change; it must be done via the Conductor administration UI. Is there no way to do in-code version patching[4] like is done in Temporal? Finally, what are the limits to usage of DBOS? As in, where does DBOS start to fall down? Are there guidelines on the maximum number of steps in a workflow before things start to get tricky? What about the maximum serialized size of the workflow/step parameters? I've been unable to find any of that information on your website. Thanks for making such an interesting piece of technology, and thanks for answering questions! [1] - https://github.com/dbos-inc/dbos-transact-golang [2] - https://docs.dbos.dev/architecture [3] - https://docs.dbos.dev/production/self-hosting/workflow-manag... [4] - https://docs.temporal.io/develop/go/versioning#patching
In I solved a distributed queue problem after 15 years

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.