Page MenuHomeSolus

RabbitMQ
Closed, WontfixPublic

Description

Name: RabbitMQ
Homepage: https://www.rabbitmq.com
Open Source: Yes
Repository: https://github.com/rabbitmq/rabbitmq-server.git
Link to source tarball: https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.3/rabbitmq-server_3.7.3.orig.tar.xz

Why should this be included in the repository?
With more than 35,000 production deployments of RabbitMQ world-wide at small startups and large enterprises, RabbitMQ is the most popular open source message broker.

imzxs created this task.Feb 23 2018, 6:02 AM
JoshStrobl added a subscriber: JoshStrobl.EditedFeb 23 2018, 6:04 AM

What's the use for this in the context of Solus, a desktop / home computing focused operating system, whereas RabbitMQ primarily targets cloud, enterprise, server deployments?

JoshStrobl triaged this task as Needs More Info priority.Feb 23 2018, 6:04 AM
imzxs added a comment.Feb 23 2018, 6:07 AM

@JoshStrobl This package is very useful for developers.

@imzxs Can I have a more concrete example?

rabbitmq is more-or-less comparable to zeromq, which is already included in solus.

From a practical perspective, applications depending on zeromq including Openshot-qt (video editing) and bitcoin. Openshot definitely fits the description of Solus (desktop/home computing). If @JostCrow or @imzxs could provide a desktop application that uses RabbitMQ, it'd be more convincing case, i guess.

From a technical perspective, RabbitMQ requires a broker (a.k.a server), while zeromq can operate without a broker. This is one of the reasons why zeromq is seen as more desktop-application-oriented.

@JoshStrobl This package is pretty much a must-have for developers.

@hashhsah That's the thing. While RabbitMQ is somewhat compatible with zeromq, they are not the same. And most developers do require this package on their local machines in order to develop and test their code. RabbitMQ is rather hard to swap out.

@born2discover i agree with you that developers need it. Could you please list some software framework that relies on RabbitMQ?

I believe the Solus team is asking for use-cases in a desktop distro in order to make sure that the software will be used by enough number of Solus users after inclusion, so it can stay maintained.

I used python-celery long time ago, but aren't familiar with others, so can't help much here.

This comment was removed by born2discover.

Since my last comment I've been trying to find a way to install RabbitMQ on my local machine. For those interested, there are two possible ways, the first one is installing the Generic Unix tarball from the official website following their installation instructions and the second one is compiling a package from source (in fact I wanted to submit a patch for RabbitMQ package until I saw the following words: "Please refrain from submitting a patch for a package that is yet to be accepted for inclusion by a member of the Triage Team"). So I thought I'd swing by here and attempt to argument why RabbitMQ should be included into Solus.

So why should RabbitMQ be included in Solus?
RabbitMQ is an open source message broker (hence called rabbitmq-server) and one of the leading implementations of AMPQ protocol. It implements a broker architecture, meaning that messages are queued on a central node before being sent to clients. This approach makes RabbitMQ very easy to use and deploy, because advanced scenarios like routing, load balancing or persistent message queuing are supported in just a few lines of code.

As @hashhsah mentioned, Solus already has zeromq in its repository so wouldn't be having RabbitMQ sort of a duplication? Not in my opinion.

ZeroMq is a very lightweight messaging system specially designed for high throughput/low latency scenarios like the one you can find in the financial world. Zmq supports many advanced messaging scenarios but contrary to RabbitMQ, you’ll have to implement most of them yourself by combining various pieces of the framework (e.g : sockets and devices) while RabbitMQ once started, can be used in a straightforward way as a service.

Now to address @JoshStrobl 's question: "What's the use for this in the context of Solus, a desktop / home computing focused operating system, whereas RabbitMQ primarily targets cloud, enterprise, server deployments?"

The use for this in the context of Solus is the same as for many programming languages, database daemons and other development tools. To allow for developers to adopt Solus as their distribution of choice without having to suffer the lack of crucial packages they require for their day to day activities.
Almost all linux distributions include RabbitMQ in their repositories in one way or another, be it Debian , Fedora or Ubuntu and while it is true that all of these distributions offer a server versions, there are also such non-server distributions like Arch/Manjaro/Antergos who have it in their repositories. In my opinion specifically because developers require them.

Finally I had a look at the Solus Package Inclusion Policy and noticed that server software like Postgresql, Redis, MySQL and of course RabbitMQ are allowed to be included because "they facilitate web developers to work locally". While it seems a bit odd to me to only favor web-developers, as they are a rather small population among a bigger pool of all developers in general it is worth noting that RabbitMQ together with Redis are top two contenders when it comes to background job management.

As already cited Python programming language offers Celery, Ruby has Sneakers and for php there is Bernard. Node seems to have many available libraries as well, but I lack knowledge in that area to provide any popular ones.

So if I were to sum up, RabbitMQ:

  • is present in two or more notorious linux distributions in currently active, core repositories.
  • is shipped regularly at a stable pace and thus is not dead-on-arrival.
  • provides a value in terms of local development ease and comfort for (web)developers.
  • is explicitly redistributable thanks to MPL-1.1.
  • is eligible even though is a server software due to it being used by developers for local development.
  • does not introduce any stack complexity as it is only one single package with little dependencies all of which are already in Solus.

Thanks @born2discover, i think that's ample examples of application, and i think enough people care about RabbitMQ to keep it maintained.

DataDrake lowered the priority of this task from Needs More Info to Wishlist.Jul 29 2018, 4:49 PM
DataDrake moved this task from Backlog to Accepted For Inclusion on the Package Requests board.
DataDrake added a subscriber: DataDrake.

I would like to point out that zeromq was included as a dependency. We normally prefer not to have random libraries floating around.

JoshStrobl closed this task as Wontfix.Aug 31 2018, 5:05 PM

As this task has been marked Needs Maintainer for a month with nobody having stepped up to become maintainer, in addition to providing an acceptable patch for inclusion, marking as WONTFIX. Feel free to re-open when a patch has been submitted via the proper processes.