tenor / RestBus

Easy, Service Oriented, Asynchronous Messaging and Queueing for .NET
http://restbus.org
Apache License 2.0
366 stars 56 forks source link

Decouple from RabbitMQ and support STOMP? #5

Closed aidapsibr closed 6 years ago

aidapsibr commented 8 years ago

Would it be a good move for this project to support STOMP as a free and open wire protocol?

michaelklishin commented 8 years ago

All protocols supported by RabbitMQ are "free" and "open" roughly in the same manner. STOMP is not developed by a governing body so in theory it should be easier to contribute to but in practice STOMP hasn't changed in a significant way in a few years, there are vendor-specific extensions in most implementations, and adding a new feature takes a long time because many client libraries aren't updated immediately.

That's a long way to say "if you want STOMP, please say so directly. The freedom and openness argument doesn't really hold."

aidapsibr commented 8 years ago

Whew I wasn't bashing AMQP, in favor of STOMP, it does seem to be a simple, not-so opinionated wire protocol that would be potentially a good move to support in addition to AMQP.

My comments about RabbitMq, is that the documentation seems to say that RestBus only supports RabbitMq as the transport. Opening that layer up to other transports might be smart.

tenor commented 8 years ago

@psibernetic Sorry for not responding sooner. I'm just seeing this now. The project is structured to support multiple transports. A new RestBus.STOMP library can be added and will automatically work with the supported frameworks. I'll add support for Azure Service Bus using amqplite soon.

However, adding a new transport requires a lot of careful planning and non trivial coding. The RestBus story for RabbitMQ is fully designed but not fully implemented. What would you like to see for STOMP? I also have no experience using STOMP. Is it popular in any industry?