Maple
Docs / Basics

What is Maple?

Maple is a reliable job queue built on PostgreSQL: enqueue work in the same transaction as your data and let workers pick it up.

It is written in Rust and ships as a single binary for Linux, macOS and FreeBSD, on amd64 and arm64. There is nothing else to install: no runtime, no database, no agent.

Your appMaplePostgreSQLqueueWorkers

Features

  • Transactional enqueue. Jobs are rows. Insert one in the same transaction as your data and it exists exactly when the data does.
  • Retries with backoff. Failed jobs are retried with exponential backoff and jitter, up to a limit you set per queue.
  • Schedules. Run jobs on cron schedules. Only one worker enqueues each run, however many you start.
  • Any language. Workers call your code over a small HTTP or stdin protocol, so jobs can be written in anything.
  • Fast pickup. Workers use LISTEN/NOTIFY to pick up new jobs within milliseconds, and SKIP LOCKED to never collide.
  • Metrics. Queue depth, latency and failures as Prometheus metrics, ready for your dashboards.

Next steps