Karya is in early development and is extremely unstable. Expect breaking changes and rapidly evolving documentation until the 1.0 release.
Karya is a Ruby-first background job and workflow platform for teams that want one runtime model across application jobs, durable workflows, framework integrations, and operator tooling.
The monorepo contains the core runtime, backend adapters, framework packages, the packaged dashboard frontend, and the documentation site.
Karya brings the operational surfaces that Ruby teams usually assemble from multiple tools into one platform:
- durable job execution with explicit routing, retries, backpressure, recovery, and dead-letter handling
- workflow orchestration with replay, compensation, child workflows, signals, queries, approval checkpoints, and versioning
- framework-native integration for plain Ruby, Rails, Sinatra, Roda, and Hanami
- a shared operator experience spanning dashboard UI, operator APIs, and CLI
- backend flexibility across Postgres, Redis, MySQL, SQLite, and
InMemory - built-in recurring-job support through Kaal
- observability, governance, and standards-oriented integration surfaces for production operations
core/karya: canonical runtime, CLI, execution model, operator contracts, workflow engine, and shared integration boundariescore/karya-activerecord: Active Record adapter surface for SQL-backed Karya deploymentscore/karya-sequel: Sequel adapter surface for SQL-backed Karya deployments
gems/karya-dashboard: optional dashboard addon that ships the packaged UI, internal API surface, and Ruby asset helpersgems/karya-rails: Rails integration paired with Active Recordgems/karya-hanami: Hanami integration paired with Sequelgems/karya-roda: Roda integration paired with Sequelgems/karya-sinatra: Sinatra integration paired with Sequel
- plain Ruby
- Rails
- Sinatra
- Roda
- Hanami
- ActiveJob compatibility
Postgres: default production recommendationRedis: supported for queue-centric and low-latency deploymentsMySQL: supported production SQL backendSQLite: supported for constrained and embedded SQL deploymentsInMemory: supported for local development, examples, and tests
- dashboard UI for queues, workers, workflows, schedules, activity, Kaal-backed recurring operations, and governed actions
- operator APIs with shared filtering, pagination, and error-envelope conventions
- CLI and command surfaces for runtime inspection, lifecycle control, and automation
gems/karya-dashboard is an optional addon that framework packages can include
when a host needs the robust operator UI and the dashboard-owned internal API
surface.
When included, it publishes a packaged dashboard distribution:
dist/index.htmldist/assets/*dist/asset-manifest.json
Framework hosts render the shared bundle from the asset manifest instead of
forking the UI per framework. The selected framework package determines whether
the dashboard is included and which adapter path backs it: Rails pairs with
karya-activerecord, while Hanami, Roda, and Sinatra pair with
karya-sequel.
The full hosting contract, internal API positioning, asset-prefix behavior, and
mount expectations are documented in
docs/pages/host-workflow.md.
Install dependencies and run the shared repository verification flow from the repository root:
scripts/ci-install-bundles
scripts/run-allFor focused dashboard work:
scripts/run-dashboard-devThe docs site under docs/ is the authoritative source for setup, operations,
support matrices, governance guidance, migration playbooks, and troubleshooting.
Start with: