Cavalcade is an AMQP broker using a PostgreSQL-compatible database as a backing store. It can work with PostgreSQL itself, but is primarily targeted at distributed PostgreSQL-compatible databases (e.g. CockroachDB, YugabyteDB) to enable a multi-node AMQP setup.
It's primary target of compatibility is "good enough to use as a drop-in replacement for RabbitMQ with Celery" but patches to improve that are welcomed.
Experimental. If you want stability, go use RabbitMQ instead and use it's clustering support for multi-node. If you want to avoid dealing with the clustering, but are happy to trade debugging Cavalcade, welcome!
It has not been optimised at all for performance, and in some cases has actively sub-optimal choices in some of the database interactions (chosen because they worked v.s. taking a lot longer to built something optimal).
In all these cases, patches to improve things are welcomed.
In all cases set DATABASE_URL to the URL for your database. Examples:
postgres://postgres:password@db/cavalcadepostgresql://root@crdb:26257/defaultdb?sslmode=disableDocker config:
/log4rs.ymlsh -c "/cavalcade --migrate --sqlx-path=/sqlx && /cavalcade". The former should do nothing on nodes without changes, and the two steps can be split if wished.Local config:
cargo build it yourself)sqlx migrate run in a folder with the migrations from step 3.DATABASE_URL has been set.Content type
Image
Digest
Size
7.7 MB
Last updated
over 4 years ago
docker pull palfrey/cavalcade:0.1.0