Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [paho-dev] Paho - highly scalable?

Ian,

I don't think Paho Clients are and should be highly scalable. I personally are in favor of having rock-solid MQTT clients for real-world productive usage. So from my point of view, 3) can be dropped and be replaced with the mission goal of having production-ready rock-solid clients.

We have written several load tests with different approaches and the truth is, that we always had to write our own MQTT clients for that. Speaking of Java clients, there is the fusesource-mqtt client which is more scalable than the Paho Java implementation but it has many concurrency bugs when using under load, so I always recommend using Paho.

If there is interest for such a highly scalable and concurrent implementation of a Java MQTT client with a nice fluent API, we would consider bringing it to the Paho project. Beside the nice fluent API, this MQTT client also has a "low-level" interface for doing things like sending "raw" MQTT messages, which may be useful for testing the behaviour of MQTT servers. So you can for instance emulate faulty MQTT client behaviour with that. This client unfortunately doesn't run on Android (afaik) and needs at least Java 5. So I would not see a competing MQTT Java client to the current Paho one but a complementary one for testing tool implementations. Internally we're using this library heavily for our HiveMQ integration and specification tests and for distributed load tests.

Best,
Dominik

Ian Craggs wrote:
Hello all,

just scanning the web page, I noticed it describes three attributes of Paho:

1) for constrained networks
2) devices and embedded platforms
3) highly scalable

where 3) is described as:

Paho focuses on highly scalable implementations that will integrate with a wide range of middleware, programming and messaging models.

I agree with the first two, but is it really true that Paho implementations are or should be highly scalable?  What does this really mean?  Several times I have heard of people wanting to create load tests for their MQTT server, but as far as I am aware none of the Paho libraries is specifically designed for that purpose.  While they may be capable of doing so, their design is not likely to be optimal.  When I am writing a client-side library, the highest priority is usually making it small.

This claim might give rise to expectations which we can't fulfil, unless anyone has a different interpretation?  If so, I think we need to explain.

-- 
Ian Craggs                          
icraggs@xxxxxxxxxx                 IBM United Kingdom
Committer on Paho, Mosquitto

_______________________________________________
paho-dev mailing list
paho-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/paho-dev

Back to the top