DEV Community

Discussion on: Introduction to Asynchronous Processing and Message Queues

Collapse
 
_hs_ profile image
HS • Edited

I would not include cloud specific solutions as they work for "vendor lock in" in a way. To use them you have to use their cloud solution. On the other hand Kafka, RabbitMQ, RocketMQ, Pulsar, EMQx and such are deployable on any platform as "manually" managed VMs (containers) or by using Kubernetes helm (still kind of a manual management but less). Given that those can be deployed on-prem or in any cloud there's not so much to gain from building against cloud specific solutions. In fact building against cloud specific solutions is the new way of using compiled languages against specific OS and architectural type in general.

On the other hand MQTT may be really good but it's not great for each use case yet you can use it with Kafka and Pulsar for example - they have modules / plug-ins to communicate with that specific protocol in mind. And I would argue way of forming and passing data is not important for general discussion, you pick the one that suits, you and most of these although having their own protocol yet depend on general purpose data transfer and can easily be modified to support another protocol. If you use something that can use multiple protocols you gain and more and more these tools support such scenarios.