← Graph

Geneva Drive

project 15 connections

Ruby/Rails library by Julik Tarkhanov for durable workflow execution. Core design: a workflow is an Active Record with a DSL of step/wait declarations at class level; each step's block is instance-evaluated inside the workflow. Every workflow has a polymorphic 'hero' association linking it to any domain record (user, payment, billing cycle) — state lives on the hero, the workflow drives state changes. Uses Active Job as a trigger (not a carrier) — each enqueued job targets one specific step_execution row, so deleting step_executions turns stale jobs into no-ops (idempotency via DB). Fine-grained locking before/after step execution prevents races without keeping DB transactions open during work. Ships flow control (cancel!, finish!, skip, reattempt, pause), configurable exception handling, Active Support instrumentations, a housekeeping cron job to resume workflows stranded by crashed workers, an exhaustive manual.md (also feedable to LLMs), and tagged logs. Explicit non-features: no built-in step idempotency (developer's responsibility), no structured rollback, no suspend/resume-inside-step (in progress). Runs on SQLite, MySQL, Postgres — no Kafka/Redis/RabbitMQ/gRPC required. Dual license (LGPL core + paid admin UI). Mounts as a Rails engine providing an admin with workflow class listing, per-workflow timeline, paused/failed inspection with step source + exception, manual resume, and APM deep-links. Used in production in Kora (email assistant) and Porsche TUI.

status
active
license
dual (LGPL core + paid admin)
language
Ruby
about
Geneva Drive project
The talk unveils and demos Geneva Drive as the proposed solution.
about
Geneva Drive project
Explains Geneva Drive's deliberate choice not to store workflow-state blobs.
about
Geneva Drive project
Asks about a missing DSL feature.
about
Geneva Drive project
Covers install generator and uniqueness constraint.
about
Geneva Drive project
Asks when the library is not needed.
about
Geneva Drive project
Covers how Geneva Drive handles (and deliberately avoids) state history.
about
Geneva Drive project
Clarifies Geneva Drive's scheduler model.
project Geneva Drive
related_to
Solid Queue project
Solid Queue + Postgres is given as an example active-job backend where Geneva Drive's JSON-column inspection becomes possible but not guaranteed.
project Geneva Drive
related_to
Rails 8.1 tool
Active Job Continuation shipping in Rails 8.1 is directly compared with Geneva Drive.
project Geneva Drive
uses
Every workflow has a polymorphic hero association.
project Geneva Drive
uses
Persists each step attempt as a step_execution row.
project Geneva Drive
uses
PostgreSQL tool
Supported as one of Geneva Drive's backing databases.
project Kora
uses
Geneva Drive project
Most transactional work in Kora (Gmail sync, history download, push notifications, LLM steps) runs on Geneva Drive workflows.
project Porsche TUI
uses
Geneva Drive project
Uses Geneva Drive to process all its documentation.
works_on
Geneva Drive project
Creator and maintainer of Geneva Drive.
role: author

Provenance

Read by
1 extraction