
Why MQTT is better than REST - ranjithdsm
https://www.bevywise.com/blog/mqtt-vs-rest-iot-implementation/
======
sametmax
I'd rather use the WAMP protocol (not the stack...): [https://wamp-
proto.org/](https://wamp-proto.org/)

Not only does it works well for iot, but it also is very nice for the web and
micro-service oriented architectures.

It's based on websocket, so it kinda works out of the box on most networks
without bugging your local sysadmin, and has a bonus benefit of TLS support.
And it's open standard with lots of open source clients, like MQTT.

It's also higher level, so you get (routed) RPC and PUB/SUB, with transparent
result and error propagation accross language (you JS code in the browser can
call you Java code on android discussing with your C# code in the cloud and
your python code on the raspi).

The main implementation for the router, crossbar.io, works very well, with
plenty of knobs for introspection, security, performance, etc. And you get
authentication backed in.

No really, MQTT is very low level to my taste compared to WAMP.

~~~
stargrazer
With MQTT, there are a number of broker implementations which offer
redundancy/resiliency. I did a quick check and didn't find any place stating
anything about any of the routers being able to run in a redundant/resilient
mode. If that is available, running WAMP becomes feasible, as I saw some
interaction between MQTT and WAMP being possible.

~~~
sametmax
WAMP is just websocket, so basically any web load balancer can offer
redundancy, like the would do with another web service. I haven't done it, but
I'm pretty sure you can spaw 4 crossbar instances, put nginx in the front and
it will work.

~~~
aramallo
The problem with this approach is that the 4 Crossbar instances will need to
have a connection/session with at least an instance of each service you want
to have global visibility of. This is because WAMP is a session-based
protocol, every peer needs to be connected to a Router in order to interact
with other peers. A Router cannot initiate sessions, only clients can.

------
mromanuk
Alright kinda of link–baity, but the custom scrolling on the site, is
unbearable.

~~~
ranjithdsm
Sorry for the slow loading of the site. This is due to the traffic and slow
loading of the site.

Do check the medium link of the post -

[https://medium.com/bevywise/mqtt-vs-rest-from-iot-
implementa...](https://medium.com/bevywise/mqtt-vs-rest-from-iot-
implementation-perspective-e0fb4b34f062)

~~~
trowawee
I don't really care about the loading, I know that HN traffic can overwhelm
sites. The scrolljacking, on the other hand, is infuriating, especially
replacing the standard "swipe to go back/forward" with "swipe to go down/up".

------
gullevek
The scrolljacking is horrible. Without unblocking cloudflare JS I can't even
scroll. This is 100 times more horrible than the usual scroll highjacking.
That should be forbidden.

~~~
ranjithdsm
Sorry for that experience. We are working on fixing it up. Please read it on
MEdium if you are not able to read further -
[https://medium.com/bevywise/mqtt-vs-rest-from-iot-
implementa...](https://medium.com/bevywise/mqtt-vs-rest-from-iot-
implementation-perspective-e0fb4b34f062)

------
NelsonMinar
Site's not handling traffic very well, I failed to capture an archive link.
Here's a pastebin of the text:
[https://pastebin.com/raw/XjhNSfTs](https://pastebin.com/raw/XjhNSfTs)

Does MQTT have any sort of future? I played with it about six months ago and
it felt like a half-baked thing with no momentum.

~~~
danesparza
AWS uses it extensively as part of their IoT platform.
[https://docs.aws.amazon.com/iot/latest/developerguide/protoc...](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html)

------
travisgriggs
We use MQTT for IoT type of stuff. I've been really really happy with it vs
trying to use REST style stuff. MQTT has TLS support as well. The library is
so lightweight that you can run it in a variety of environments. I did have to
roll an RPC-over-MQTT convention, but it was pretty straightforward to do.

------
bb88
Mods, can you clarify that this is for IoT?

