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

Discussion: gateway shouldn't crash is rabbitmq is not available or error with the communication to rabbitmq #75

Open
edevosc2c opened this issue Nov 7, 2023 · 3 comments
Labels
enhancement New feature or request

Comments

@edevosc2c
Copy link
Member

This is a discussion/enhancement. (Ping @jeanpommier @pmauduit @marwanehcine @groldan @fvanderbiest @emmdurin)

The georchestra gateway is the central place for redirecting all the traffic to all the georchestra applications. If this component is down, nobody can interact with the georchestra applications.

The current behavior when rabbitmq is not available or there is an error when communicating with rabbitmq is to crash. Essentially rendering all the platform unusable.

I would propose to not make rabbitmq a hard requirement, but instead rely on mechanisms that will automatically retry to establish a communication to rabbitmq. These mechanisms can temporarily store in memory the messages that would send to the queue until the queue is available again.

Moreover, events are not a critical part of the well functioning of a georchestra platform. The users should still be able to interact with the overall platform when the event messaging is temporarily unavailable.

(I don't see how the gateway would be production ready for georchestra 25 with this issue.)

@edevosc2c edevosc2c added the enhancement New feature or request label Nov 7, 2023
@fvanderbiest
Copy link
Member

Moreover, events are not a critical part of the well functioning of a georchestra platform. The users should still be able to interact with the overall platform when the event messaging is temporarily unavailable.

100 % agree.

@jeanpommier
Copy link
Member

+1

@marwanehcine
Copy link
Contributor

Currently rabbitmq now is used to allow gateway to send email by sending notification to console (which has already the mecanism of email sending implemented).
The whole idea is to limit the context of gateway and make it use services provided by other mirco-services.
until now, there nothing critical (just upate admin when new OAuth2 user account is created)
We can surround send function by a try catch bloc to manage exceptions thrown if rabbitmq is down or there a miscommunication issues.
But include new feature to save message and retry to send it later may be a good idea, for me this needs extra work (how, which mecanisms : redis for example ?)

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

4 participants