finds.dev← search

// the find

akira/exq

★ 1,531 · Elixir · NOASSERTION · updated Mar 2026

Job processing library for Elixir - compatible with Resque / Sidekiq

Exq is a Redis-backed background job library for Elixir that speaks the Sidekiq/Resque wire format. It lets you run Elixir workers while sharing a queue with Ruby apps, or use it standalone. The main reason to reach for it over GenServer/Task is durable jobs that survive restarts and need scheduled retries.

Resque/Sidekiq wire compatibility is real and useful — you can push jobs from a Rails monolith and consume them in an Elixir service without touching the Ruby side. The backup queue via RPOPLPUSH means in-progress jobs are recoverable on restart, not silently dropped. Unique jobs with configurable lock expiry (on start, on success, or on TTL) covers the common deduplication patterns without requiring a separate layer. The heartbeat-based dead node detection handles autoscaling environments where hostname-based recovery falls apart.

It still uses Redis polling rather than BLPOP-style blocking or Streams, so latency under low load is governed by poll_timeout and you're burning Redis round-trips continuously even when queues are empty. There's no built-in support for job prioritization beyond separate queues with different concurrency caps — coarse-grained but workable, just not what you want if you need preemption. The 'unique jobs are best effort' caveat in the docs is honest but means the uniqueness guarantee has real gaps: a job can still execute twice if a node crashes after dequeue but before the lock is cleared. The library's active Elixir ecosystem alternatives (Oban with Postgres) have largely overtaken it for greenfield projects, and the fact that the README itself recommends evaluating OTP-native solutions first signals where the gravity has shifted.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →