Thursday, February 25, 2016

IBM Bluemix Message Hub @Interconnect 2016











IBM is working hard to add more services to its Bluemix PaaS portfolio. Here I will share what I have learned about one of the Bluemix service called Message Hub @Interconnect 2016 in Las Vegas, NV this week.
IBM’s Message Hub based on Apache Kafka is a scalable, distributed, high throughput message bus to integrate Cloud applications. Main scenarios described for Message Hub is that, it 
·      provides cloud messaging for Bluemix services
·      allows building apps in a microservices framework
·      helps to be the channel to stream data to analytics engine available in Bluemix
Message Hub offers broad compatibility via 3 APIs: REST, Kafka and MQ Light (AMQP)
When using Message Hub one need to consider the following:
·      Kafka REST API allows producing messages and creating consumers. But, for more flexibility and performance one should use a Kafka client.
·      Message Hub is based on Kafka 0.9 which brings TLS-secured connections for clients, so the earlier high-level consumer cannot be used. The newer Kafka 0.9 consumer is the way to go.
I couldn’t get a good answer for their recommendation on when to use message hub (think SOR vs. SOE).
They also talked about providing a connector (message connect) to integrate on-premise messaging to the cloud-based Message Hub. Message Connect connects event sources that live outside of Bluemix directly to Message Hub.
Although Message Hub supports MQ Light API (AMQP protocol), making it JMS compliant is not on their roadmap. But they are willing to work on it if customers ask.
Packaging and productizing message hub for deploying in a private cloud or on-premise environment is also not on their roadmap. But if customers ask for it then they might do it.
All things considered, I think it’s huge that IBM is using Kafka as the backbone of their cloud messaging. They have taken the open source Kafka and added more QOS capability on top of it. It would be interesting to see what improvements they make over time.
Are you looking for using Kafka in your solution architecture? Would you be interested in using Message Hub or deploying and managing your own Kafka clusters? What’s your decision matrix?