Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add RabbitMQ database #20

Open
abagali1 opened this issue Sep 30, 2020 · 1 comment
Open

Add RabbitMQ database #20

abagali1 opened this issue Sep 30, 2020 · 1 comment
Labels
enhancement New feature or request

Comments

@abagali1
Copy link
Member

Celery and other task queues require brokers like RabbitMQ and redis to back workers. RabbitMQ provides stronger security than redis so we should emulate the current postgres/mysql setup except for RabbitMQ

@etnguyen03 etnguyen03 added the enhancement New feature or request label Sep 30, 2020
@abagali1 abagali1 added the good first issue Good for newcomers label Sep 30, 2020
@ghost ghost removed the good first issue Good for newcomers label Sep 30, 2020
@ghost
Copy link

ghost commented Sep 30, 2020

There are two real ways to do this:

  1. Add in RabbitMQ support without modifying the existing PostgreSQL/MySQL code. This would entail massive amounts of code duplication. Essentially, everything that deals with databases, from the manager to the orchestrator, would have to be copy/pasted and modified slightly.
    This is a LOT of code we're talking about. There's the views that handle creating/deleting databases, there's the endpoints on the orchestrator that actually perform the creation/deletion, there's the database shell view... the list goes on and on.
    I do not think pursuing this option is a good idea.
  2. Rework Director to support a single site having multiple databases, then add logic to the DB creation/management code in the orchestrator to be able to create RabbitMQ databases too. This is the better way to do it, but it would be fairly involved because the "one site, one database" model is very deeply engrained.
    Note that this would raise some issues. For example, how do we set DATABASE_URL (and similar environmental variables) if the site has a Postgres DB, a MySQL DB, and a RabbitMQ DB? How do we communicate all 3 to the site?
    In addition, if support is implemented this way, we might as well add Redis support too. Redis 6 added support for multiple users, which would make it possible to implement similarly to RabbitMQ.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants