🪓 Postgres-only Mode
March 24th, 2025
Since we released the first build of Hatchet, we've required that RabbitMQ be installed on self-hosted instances of Hatchet. The reason for this is that RabbitMQ is responsible for brokering messages which are sent between Hatchet engine components -- for example, it's what we use to send a message from the scheduler component (the service which schedules tasks on workers) to the grpc component (the service which workers connect to).
However, we've gotten a lot of feedback from self-hosted users that they'd like to run Hatchet without RabbitMQ. This is for a number of reasons -- RabbitMQ is another dependency to set up and maintain, and it's another moving part in the system which can fail.
So, we're excited to announce a new Postgres-only mode for the Hatchet engine, using Postgres for brokering messages.
And as a bonus feature, the Postgres database also supports metrics, which means you can now view a breakdown of task metrics from the Hatchet dashboard:
Enabling Postgres-only Mode
You can enable Postgres-only mode by setting the following environment variable:
SERVER_TASKQUEUE_KIND=postgres
When not to use Postgres-only Mode
If you're queueing more than 100 tasks/second consistently, RabbitMQ is a more scalable choice for a message broker.