Overview
Hybrid architecture: a thin language SDK on top, one Rust engine underneath.
Hybrid architecture: a thin language SDK on top, one Rust engine underneath.
flexiq is a hybrid PythonNode.jsJava/Rust system. PythonNode.jsJava provides the user-facing API. Rust handles all the heavy lifting: storage, scheduling, dispatch, rate limiting, and worker management.
Queue, @task, .delay().task(), .enqueue()Task.of(), enqueue(), results, workflows, resources — the surface you write against.Most task queues are three services glued together: a message broker (Redis or RabbitMQ) that holds pending jobs, a result backend that stores return values, and the workers. You install, secure, and monitor all three.
flexiq removes the first two. The queue is a database — SQLite in
WAL mode by default, or Postgres — and it serves as
both the broker (the durable, ordered job store the scheduler polls) and the
result backend (return values are rows in the same store). The
scheduler claims each job straight from that database
with an atomic claim_execution, so there is no separate queue server to hop
through. That is why setup is a single install, and why the database is the one
source of truth for every dispatch, failure, and recovery path.
| Page | What it covers |
|---|---|
| Job Lifecycle | State machine, status codes, transitions |
| Worker Pool | Thread architecture, async dispatch, concurrency model |
| Storage Layer | SQLite pragmas, schema, indexes, Postgres differences |
| Scheduler | Poll loop, dispatch flow, periodic tasks |
| Resource System | Argument interception, DI, proxy reconstruction |
| Failure Model | Crash recovery, duplicate execution, partial writes |
| Serialization | Pluggable serializers, format details |