Clustering. Running hazelcast as a separate instance


I am working with a clustered environment and I noticed that hazelcast is embedded. Trying to understand why.

Is there a special reason it was done this day?

Is there an advantage to use a separate instance for hazelcast? Is it even possible with this plugin?


Hi Daniel,

The Hazelcast-plugin is a direct replacement of the much older ‘clustering’ plugin, that provided similar functionality, but was based on a different library (Tangosol Coherence). Much of what you see in the architecture of the current plugin is probably there as a form of inheritance from that older plugin.

Much of the clustering functionality in Openfire depends on interaction with the Hazelcast API, on a programming level. I’m sure that this somehow could be modified, but the amount of effort involved would be huge, and this would almost certainly be a breaking change. That’s not very appealing.

Additionally, there are generic arguments to be made around things like ease of installation: with the current setup (running things as a plugin), there is very little that needs to be configured, other than installing the plugin, to get clustering to work in many scenarios.

It’s not clear to me how it is working though, hazelcast is running embedded on each instance then? Or only in one? Is it even possible to run hazelcast separately?

Hazelcast is ran embedded on each Openfire cluster node, yes. I’m not ruling out that it is somehow possible to run it separately, but I wouldn’t know how.

1 Like