← Graph

Adventures in durable execution

talk 29 connections

Closing talk of wroclove.rb 2026 by Julik Tarkhanov. Motivated by a money-transfer workflow (retry, idempotency, background scheduling, emails, error handling), Julik defines a workflow as steps depending on each other's completion/failure with persisted state. Argues that mainstream 'durable execution' offerings — Cloudflare Workflows ('orange cloud man') and Durable Objects/Temporal/Restate ('black pyramid man') — sell a deception: imperative code pretending to be a DAG, glued together by opaque persistence tricks (overriding performance.now, date/time etc.) on Firecracker VMs. A truly durable function would require a Smalltalk-style VM able to serialize call stacks, DB connections, sockets, tokens and transient state — which no mainstream runtime provides. Better model: treat workflows as DAGs explicitly, like Houdini scenes, Nuke compositing, Terraform state (HCL + provider modules) or Excel formulas — where the DAG and the executable node code are kept separate. Reviews Temporal's Ruby bindings, acidic_job (Stephen Margheim), HYA (Honey Badger) and Active Job Continuation (Rails 8.1 / 37signals) as examples of DAGs smuggled inside `perform`. Presents Geneva Drive: Rails-native, Active Record-backed workflows with step/wait DSL, polymorphic hero association, instance-evaluated step blocks, flow control (cancel!, finish!, skip, reattempt, pause), per-step fine-grained locking, executes on existing active-job adapter, works on SQLite/MySQL/Postgres. Demo inside Kora (email assistant) plus Porsche TUI (Stas). Ends with dual-license model and a wroclove.rb-special pricing offer. Q&A covers conditional DAG jumps, hero deletion/mutation semantics, migrations (gem-generated), YAGNI, historical state (use paper_trail), and scheduling granularity (follows active-job adapter).

date
2026-04-17
type
talk
talk Adventures in durable execution
about
Geneva Drive project
The talk unveils and demos Geneva Drive as the proposed solution.
talk Adventures in durable execution
about
Core subject: how to honestly implement durable execution.
talk Adventures in durable execution
about
Workflow concept
Defines and discusses workflows as graphs of interdependent steps.
talk Adventures in durable execution
about
Argues workflows should be modeled as DAGs, with examples from Houdini, Nuke, Terraform and Excel.
talk Adventures in durable execution
about
Temporal tool
Critiques Temporal's Ruby bindings example as mixing DAG and imperative code.
talk Adventures in durable execution
about
Restate tool
Listed among systems promising 'stable workflows' via imperative code.
talk Adventures in durable execution
about
Critiqued as the 'orange cloud man' selling imperative-as-durable on Firecracker VMs.
talk Adventures in durable execution
about
Critiqued as the 'black pyramid man' workflow product.
talk Adventures in durable execution
about
acidic_job tool
Cited approvingly but used to illustrate DAG-inside-perform deception.
talk Adventures in durable execution
about
HYA tool
Inspired Geneva Drive's DSL; discussed along with its limitations.
talk Adventures in durable execution
about
Given as a Rails 8.1 example of embedding DAG topology inside perform.
talk Adventures in durable execution
about
Terraform tool
Held up as a good example of DAG/executor separation (HCL + Go provider modules).
talk Adventures in durable execution
about
Houdini tool
Scene-as-DAG example used to motivate thinking about workflows as DAGs.
talk Adventures in durable execution
about
Nuke tool
Compositing-as-DAG example: Tcl describes the DAG, C++ DSOs execute the nodes.
talk Adventures in durable execution
about
Kora project
Live demo of Geneva Drive's admin runs against the Kora production app.
talk Adventures in durable execution
about
Porsche TUI project
Mentioned as another production user of Geneva Drive.
talk Adventures in durable execution
about
Talk explains the hero association at length.
talk Adventures in durable execution
about
Talk describes step_execution records as the basis for idempotency, timeline and pause/resume.
asked_at
Adventures in durable execution talk
First audience question during Q&A.
asked_at
Adventures in durable execution talk
Follow-up question during Q&A.
asked_at
Adventures in durable execution talk
Audience question on hero requirements and migration tooling.
asked_at
Adventures in durable execution talk
Andy's YAGNI question.
asked_at
Adventures in durable execution talk
Audience question near the end of Q&A.
asked_at
Adventures in durable execution talk
Final Q&A question from a former HYA user.
authored
Adventures in durable execution talk
Julik delivered this closing talk at wroclove.rb 2026.
from_talk
Adventures in durable execution talk
Central thesis of the talk.
from_talk
Adventures in durable execution talk
Drawn from Julik's critique of active_job-based workflow containers.
from_talk
Adventures in durable execution talk
Julik endorses paper_trail on the hero as the way to keep state history.
talk Adventures in durable execution
presented_at
Announced as the last talk of this year's edition.

Provenance

Created
2026-04-17 16:18 seed
Read by
39 extractions