We use the product for high-scale distributed messaging. The processing capability of the product is enormous. Being a distributed platform, multiple consumers can sync with it and fetch messages.
Another great feature is the consumer offset log which tells you where the consumer left and where he needs to start again. Consumers aren’t required to code and put extra effort to maintain the offset.
Improvements to My Organization:
We were using another commercial messaging engine, which was not scalable unless you paid more. Each hub that we provisioned was expensive. This solution is open source, which is much easier to use and doesn’t cost us anything.
Room for Improvement:
This product guarantees at-least-once delivery. We have asked JIRA to provide features such as at-most-once delivery to remove duplicate message consumption.
We haven’t faced any issues so far. Some of the clusters churn millions of records per seconds with ease.
We have clustered environments and we haven’t seen any scalability issues. We can provision a new node in as little as 45 minutes.
It is open source, so support is in our own hands. The only option is to make a new feature request through JIRA. When multiple people in the community make a request for similar feature, it gets priority.
We switched from a previous solution mainly to reduce costs and to have a more scalable solution.
The initial setup was a bit complex in terms of how to manage it across data centers. But once it was setup, we never faced issues.
Other Solutions Considered:
We evaluated multiple options, such as ActiveMQ and RabbitMQ. We leaned towards this solution.
I would advise others to start with non-SSL implementations and try to do PoCs. Afterwards, they should move towards more secure features.
Disclosure: I am a real user, and this review is based on my own experience and opinions.