Which message broker to choose #69
Replies: 7 comments
-
Could you please elaborate on the scale we are talking about here? Assuming if we will be running multiple instances of the data scraping service wihich can be horizontally scaled easily, do we have to implement priority queue? |
Beta Was this translation helpful? Give feedback.
-
I don't think we can predict the scale cause we don't have business model, and I'm just a developer who just finds resolving of problem of creating API hub interesting. Maybe no one will use this application, I don't know. Also this part with data scraping service may become under load If we reach the stage of automatically collecting data from the entire Internet. So it's difficult to predict load currently. |
Beta Was this translation helpful? Give feedback.
-
It turns out that this service can come:
Those. in the final form, it may be a constant load, and user requests should be processed as soon as possible. |
Beta Was this translation helpful? Give feedback.
-
I would be inclined to go with RabbitMQ because it is proven to handle requests at a large scale. Even the last company I worked with had this used for almost every communication in K8s. And they handled infrastructure at a very large scale. It is easy and intuitive to use afaik, although I haven’t directly worked on it at any stage |
Beta Was this translation helpful? Give feedback.
-
Thank you for the explanation. https://www.confluent.io/blog/kafka-fastest-messaging-system/ |
Beta Was this translation helpful? Give feedback.
-
Yes, sure. Kafka is great and I used to take a part in project with it about two years ago. But if I'm not mistaken, Kafka doesn't have default docker image and is not easy to setup. I'm just a little worried about resources cause I don't know where we can deploy project. Go-services take several Mb each. But just Scala lib alone is bigger than all the services combined. |
Beta Was this translation helpful? Give feedback.
-
Understood. Thank you for your view |
Beta Was this translation helpful? Give feedback.
-
I propose to discuss which message broker we may choose for the async actions.
On the terrastruct V1 scheme ( https://app.terrastruct.com/diagrams/1204758278/edit#layer=877011438 ) I assumed using of priority queue ( request from API gateway to "data scraping service") to process requests from users in higher priority than updating already existing API definitions (and higher priority than adding new API refs from the crawler in future) ).
So I'm keeping in mind idea to use RabbitMQ cause it supports priority for the queue and fits the architecture fine.
But we may emulate priorities from the client side and just use different "topics" for different priorities.
So we may use NATS for instance which much more lightweight and has some interesting features. Or maybe some others brokers.
Please share your opinion, which broker should we choose?
Beta Was this translation helpful? Give feedback.
All reactions