|
|
|
|
|
by qianli_cs
281 days ago
|
|
Thanks for sharing your insights! You nailed the key tradeoffs of most durable workflow systems. The callback-style programming model is exactly the pain point we aim to solve with DBOS. Instead of forcing you into a custom async runtime, DBOS lets you keep writing normal functions (this is an example in Python): @DBOS.workflow()
def do_thing(foo):
return bar
# You can still call the workflow function like this:
result = do_thing(fooInput)
Under the hood, DBOS checkpoints inputs/outputs so it can recover after failure, but you don't have to restructure your code around callbacks. In Python and Java we use decorators/annotations so registration feels natural, while in Go/TypeScript there's a lightweight one-time registration step. Either way, you keep the synchronous call style you'd expect.On top of that, DBOS also supports running workflows asynchronously or through queues, so you can start with a simple function call and later scale out to async/queued execution without changing your code. That's what the article was leading into. |
|
Can you explain what makes DBOS better to use in Golang vs Temporal?