-
-
Notifications
You must be signed in to change notification settings - Fork 80
Description
Title: Feature Request: Provide an apalis-server for standalone deployment (Faktory-like mode)
Description
First of all, thanks for building Apalis — it’s a great library for background job processing in Rust.
Currently, Apalis works very well as an embedded library, but in some use cases it would be very helpful to have a standalone server mode, similar to how [Faktory](https://github.com/contribsys/faktory) works.
With a standalone apalis-server, developers could:
- Deploy a single job processing service in their infrastructure.
- Connect to it from multiple applications (potentially across different languages).
- Manage and monitor jobs from a central place.
Motivation
- In multi-service environments, having each service embed Apalis separately makes management harder.
- A central server improves observability, monitoring, and operational simplicity.
- It also allows the project to define a simple protocol (HTTP/gRPC/custom TCP), which opens the door for community clients in other languages (e.g. Go, Python, JavaScript).
Proposed solution
-
Introduce a new crate/binary, e.g.
apalis-server. -
This binary would:
- Run the Apalis job engine internally.
- Expose a simple API/protocol for pushing/pulling jobs.
- Optionally provide a basic Web UI and metrics endpoint.
-
Keep Apalis as a library for applications that prefer direct integration.
-
This way, Apalis can cover both use cases: embedded mode and server mode.
Inspiration
The model of Faktory is a good reference:
- Simple client protocol.
- Reliable job storage (via Redis or Postgres).
- Features like retries, scheduled/delayed jobs, and failure queues.
- A Web UI for visibility (even a basic one would be very useful).
Additional context
This would make Apalis not just a Rust job processing library, but a general-purpose job queue system that could be adopted across language ecosystems.