Hazelcast queues are not partitioned


Weak documentation

There. I said it, just in case you were looking for answers in the documentation and was coming up empty handed.

First of all, I like Hazelcast; it has a simple API, can be embedded in your application and works out of the box when you need to distributed data structures across processes or machines.

So how do the queues work in Hazelcast?

Based on the documentation on their forum, I think the following applies:

Here is an example of a cluster with a single queue and a backup

Hazelcast queue

A trick you can do to scale the size of a queue is to stripe it, i.e create several queues that represents a single queue. Then you write to each of the queues in a round-robin style, and poll from all the queues. Obviously not a very scalable solution.

Stuff I'm still uncertain about: