Capabilities at a glance
Everything flexiq already does, in one place — for evaluating it, or for checking whether the thing you need is missing.
Everything flexiq already does, in one place — for evaluating it, or for checking whether the thing you need is missing.
This page is a map, not a lesson. It is here for two readers: someone deciding whether flexiq covers what they need, and someone who suspects a capability is missing and wants to check before working around it.
If you are learning flexiq rather than evaluating it, the linear track is a better use of the next hour — Start here.
Every card below links to the guide that documents it.
These are the capabilities most often assumed absent. They aren't.
| You might assume… | Reality |
|---|---|
| No canvas / workflows — no chain, group, or chord | chain / group / chord are exported from the top-level package, backed by a full workflow DSL. |
| No Flower-like dashboard | flexiq dashboard --app myapp:queue serves a built-in monitoring UI. |
| No retry backoff or per-exception retries | max_retries, retry_backoff, retry_on, dont_retry_on are arguments on every task. |
| No soft timeouts | current_job.check_timeout() gives cooperative soft timeouts. |
| GIL bottleneck with no escape hatch | --pool prefork runs child processes with independent GILs for true CPU parallelism. |
# Reliability — backoff + per-exception retry rules
@queue.task(max_retries=5, retry_backoff=2.0, retry_on=[TimeoutError])
def fetch_url(url: str) -> str: ...
# Workflows — sequential pipeline (group / chord for fan-out / fan-in)
chain(fetch.s(url), parse.s(), store.s()).apply()
# Scheduling — priority + rate limit
@queue.task(priority=9, rate_limit="100/m")
def notify(user_id: int) -> None: ...flexiq worker --pool prefork --app tasks:queue # CPU-bound: true parallelism
flexiq dashboard --app tasks:queue # Flower-style monitoring UIA map of the Node SDK's features. Everything here runs over the shared Rust core with zero Python — pick a backend, register tasks, run workers.
| Feature | Guide |
|---|---|
| Typed task registry, enqueue, await results | Tasks · Result |
| SQLite / Postgres / Redis backends | Backends |
| Named queues, priority, pause/resume | Queues |
| Cron-scheduled & delayed jobs | Scheduling |
Cooperative cancellation (AbortSignal) | Cancellation |
Streaming partial results (publish / stream) | Streaming |
| Execution model (async, concurrency) | Execution model |
| Topic pub/sub fan-out to independent subscribers | Pub/Sub |
| Feature | Guide |
|---|---|
| Retries with backoff, dead-letter queue | Retries · Dead-letter |
| Per-attempt timeouts | Timeouts |
| Concurrency caps & rate limits | Concurrency · Rate limiting |
| Circuit breakers | Circuit breakers |
Idempotent enqueue (uniqueKey) | Idempotency |
| Distributed locks | Locks |
| At-least-once execution | Guarantees |
| Feature | Guide |
|---|---|
| DAG workflows: fan-out/in, conditions, gates, sub-workflows, saga | Workflows |
| Decentralized work-stealing mesh | Mesh |
| Feature | Guide |
|---|---|
| Lifecycle events & middleware | Events · Middleware |
| Signed webhook delivery | Webhooks |
| Resource injection & enqueue interception | Resources |
| Pluggable serializers (JSON / msgpack / signed / encrypted) | Serializers |
| Feature | Guide |
|---|---|
| Stats, metrics, progress, worker heartbeats | Monitoring |
| Leveled logger | Logging |
| OpenTelemetry / Prometheus / Sentry | Integrations |
| React dashboard + REST API | Dashboard · REST API |
| KEDA autoscaling (queue-depth scaler) | KEDA |
| Bare-metal autoscaler (worker processes) | Autoscaling |
| Standalone CLI | CLI |
Some features need the native addon built with optional cargo features —
workflows and mesh ship with pnpm build:native. See
installation.
A map of the Java SDK's features. Everything here runs over the shared Rust core — pick a backend, describe tasks, run workers.
| Feature | Guide |
|---|---|
| Typed task descriptors, enqueue, read results | Tasks |
| SQLite / Postgres / Redis backends | Installation |
| Named queues, priority, pause/resume | Queues |
| Cron-scheduled & delayed jobs | Scheduling |
| Cooperative cancellation & progress | Cancellation |
| Partial results via task logs | Streaming |
| Execution model (thread pools, autoscaling) | Execution model |
| Topic pub/sub fan-out to independent subscribers | Pub/Sub |
Compile-time TaskHandler bindings (no reflection) | Tasks |
| Feature | Guide |
|---|---|
Retries with backoff curves (RetryPolicy), dead-letter queue | Retries · Dead-letter |
| Per-attempt timeouts | Timeouts |
Circuit breakers (CircuitBreakerConfig) | Circuit breakers |
Idempotent enqueue (uniqueKey) | Idempotency |
| Distributed locks | Locks |
| At-least-once execution | Guarantees |
| Feature | Guide |
|---|---|
| DAG workflows: fan-out/in, conditions, gates, sub-workflows, sagas, visualization | Workflows |
| Decentralized work-stealing mesh | Mesh |
| Feature | Guide |
|---|---|
| Lifecycle events & middleware | Events · Middleware |
| Signed webhook delivery | Webhooks |
| Resource injection, enqueue predicates & interception | Resources · Predicates |
| Signed cross-process references (proxies) | Resources |
| Pluggable serializers (JSON / MessagePack / signed / encrypted) & payload codecs | Serializers |
Producer-side batching (Batcher) | Batching |
| Feature | Guide |
|---|---|
| Stats, metrics, progress, worker heartbeats | Monitoring |
| Micrometer Observation / Sentry middleware | Integrations |
| React dashboard + REST API | Dashboard |
| In-process autoscaling + KEDA scaler endpoint | Autoscaling |
| Standalone CLI | CLI |
Spring Boot 3 starter — auto-configures a
FlexiQ bean from flexiq.url / flexiq.pool-size / flexiq.namespace.
Observability and MessagePack dependencies are compileOnly — add
io.micrometer:micrometer-observation, io.sentry:sentry, or
org.msgpack:jackson-dataformat-msgpack only if you use them.