Reappt and IBM Bluemix

Share: Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInShare on RedditEmail this to someonePrint this page


DHT Simulator

I am a co-op student from Appalachian State University and just joined the IBM jStart Emerging Technologies team.  I’ve recently had the pleasure of building and running my first application on Bluemix, IBM’s cloud platform. The application I built is an interactive Distributed Hash Table simulator built using the Reappt service Bluemix offers. I built this application in an effort to make learning about DHTs an easier experience for people interested in distributed and decentralized technologies.

Each session that connects to the application acts as a client in the DHT. As clients enter and leave the network each individual client will build its own unique DHT which connects it to peers.


ibm-docs-robotMy first impressions of Bluemix have been pretty great. Admittedly, it took me a day or two to get into the flow of things, but after that the process of deploying code became a breeze. Bluemix is a huge platform that comes loaded with a ton of services, from auto-scaling DevOps deployments to Watson integration. The services are tools you can quickly integrate into your application. There’s also a ton of development tooling, e.g., git management, continuous integration, automatic deployment, IDE, etc. Having your entire development platform and deployment pipeline baked into one solution is a wonderful experience.

The Cloud Foundry CLI (Command Line Interface) is definitely a tool that you should become familiar with if you’re looking into developing on Bluemix. It also helps to become a little familiar with the Cloud Foundry architecture, because it’s what Bluemix leverages to deploy your application. The Cloud Foundry documentation is a great place to learn more about the CF architecture.


Reappt is a third-party service that Bluemix provides. Reappt offers messaging as a service via a topic-based publish-subscribe messaging system. The primary advantages of such a system is loose coupling between publisher and subscriber and scalability of the system as a whole. In other words, Reappt offers a really convenient way to communicate messages between devices. Reappt offers APIs for JavaScript, Java, .NET, iOS, Flash, and Silverlight. My experience was with JavaScript.

The documentation for Reappt still needs a bit of work, but that’s to be expected since it’s currently existing as a “preview version.” Reappt is powered by Diffusion, thus the Diffusion documentation can be a useful place to find information if you can’t find it in the Reappt documentation.

Diffusion software is a development software platform to remove the complexity and associated challenges of developing for scale, coping with the explosion of data across networks, delivering a rich application experience and real-time conversational interactions.

Getting Started

Overall, getting started with Reappt is pretty straight forward. After adding the service on Bluemix, you will be provided a link to your Reappt Dashboard. There you will be provided with your “Reappt Service Details” and a series of panels for managing Reappt users.

There’s also a “Test Client” tab which I found useful for debugging messages being updated.

Screen Shot 2015-06-04 at 4.33.07 PM

Adding your API

Getting started with the JavaScript API requires that you include the API in your web page with the tag:

Or if you’re using Node.js you can simply require the package:

Source: Reappt JavaScript Quick Start

Connecting to your Service

Connecting to your service is done using diffusion.connect() and the Reappt service details you acquired earlier. diffusion.connect() returns a promise.

Source: Reappt JavaScript Docs


Once you’ve connected to your server you can begin publishing and subscribing messages. Messages are sent on topics. Topics are unique paths that are associated with data that can be published or subscribed to. As an example the topic “topic/path/for/data” might contain the data “foo”.

If a session were subscribed to “topic/path/for/data” and a publisher updated that topic with the data “bar” then a callback function would called on the client with the data “bar” passed in. Here is an example of creating then publishing to the topic “topic/path”.

Here is an example of subscribing to the topic “topic/path”.

Source: Reappt Topics Docs



My brief experience with IBM’s jStart team has so far been a great experience. My opinion is that Bluemix is a development platform that’s entirely worth spending a few days learning. I’ve had the opportunity to play with quite a few technologies already, e.g., Bluemix, Node.js, Express, Browserify, k-buckets, Reappt, and Cloud Foundry tools. Reappt seems like a good choice if you want to move from rapid proof-of-concept to production without needing to refactor with new services or libraries to handle message passing. Reappt is also ideal if you want to have loose coupling between sessions publishing data and subscribing to data (mobile development comes to mind). With Reappt you can abstract away most of your message passing requirements and implementation details which can be a big time and money saver in the long run.

Share: Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInShare on RedditEmail this to someonePrint this page
Nathan Hernandez
Nathan is a developer and co-op on IBM's jStart team. Nathan is currently pursuing his MS in Computer Science at Appalachian State University and holds a BS in Computer Science from Appalachian State University.
Nathan Hernandez
Nathan Hernandez

Latest posts by Nathan Hernandez (see all)

One comment

Leave a Reply