eiffel-community / eiffel-intelligence

Eiffel Intelligence is a real time data aggregation and analysis solution for Eiffel events.
Apache License 2.0
11 stars 72 forks source link

Waitlist queue is now created and add support for multiple binding keys #452

Closed Christoffer-Cortes closed 4 years ago

Christoffer-Cortes commented 4 years ago

Applicable Issues

Closes https://github.com/eiffel-community/eiffel-intelligence/issues/414

Description of the Change

Added support for multiple routing key bindings in RabbitMQ. The same rabbitmq.binding.key property is used as a comma separated string e.g. routing-key1, routing-key2. The internal waitlist will now also publish events using the routing key eiffel-intelligence.waitlist. This also means that Eiffel Intelligence now listens to events sent using the mentioned routing key. The waitlist queue is now actually created and internal events are sent on that queue.

Alternate Designs

Benefits

This makes it configurable to set up bindings towards several "domains".

Possible Drawbacks

Sign-off

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.

Signed-off-by: @Christoffer-Cortes

e-pettersson-ericsson commented 4 years ago

I'm nitpicky here but I have a suggestion 😄

Is it possible to also update the default value for this property in the application.properties? Currently it is set to rabbitmq.queue.suffix: messageQueue .

I want to add EI to "messageQueue" - to better visualize that this consumer is from Eiffel Intelligence? For example: "EImessageQueue"?

Christoffer-Cortes commented 4 years ago

I'm nitpicky here but I have a suggestion

Is it possible to also update the default value for this property in the application.properties? Currently it is set to rabbitmq.queue.suffix: messageQueue .

I want to add EI to "messageQueue" - to better visualize that this consumer is from Eiffel Intelligence? For example: "EImessageQueue"?

Currently the complete name of the queue is "ei-domain.eiffel-intelligence.messageQueue.durable". Is it neccessary to add EI to messageQueue?

e-pettersson-ericsson commented 4 years ago

I'm nitpicky here but I have a suggestion Is it possible to also update the default value for this property in the application.properties? Currently it is set to rabbitmq.queue.suffix: messageQueue . I want to add EI to "messageQueue" - to better visualize that this consumer is from Eiffel Intelligence? For example: "EImessageQueue"?

Currently the complete name of the queue is "ei-domain.eiffel-intelligence.messageQueue.durable". Is it neccessary to add EI to messageQueue?

True, maybe it is enough as long as Eiffel Intelligence is mentioned somewhere in the queue name

Christoffer-Cortes commented 4 years ago

This needs to be re-reviewed since I first misunderstood the property. Eiffel Intelligence now actually makes use of an internal waitlist with this change.