In Part II of this series, we covered the architecture needed for persisting the Activity Streams to MongoDB and fanning it out in real-time to all the clients using Redis PubSub.
Since then, some exciting new Node.js features for Cloud Foundry were launched. In addition, the MongoDB version on Cloud Foundry has been upgraded to 2.0.
In this blog post we will cover how to:
Use Mongoose-Auth to store basic user information, including information from Facebook, Twitter, and Github, and how we made this module with native dependencies work on Cloud Foundry
Use Mongo GridFS and ImageMagick to store user uploaded photos and profile pictures
Perform powerful stream filtering, thanks to new capabilities exposed in MongoDB 2.
At Cloud Foundry we care about making life easier for web developers and API developers. Open source helps developers reuse code. Open standards help developers reuse protocols and schemas. We are pleased to announce that VMware has furthered its commitment to open standards with a signed agreement on Activity Streams specifications. VMware signed the Open Web Foundation Agreement (OWFa) for the JSON and Atom Activity Streams specifications, which gives application developers confidence in implementing these open specifications when building web applications and services.
What is OWFa?
In short, the Open Web Foundation Agreement is a promise made by the signing company that they will not assert IP Claims over the work covered in the specification.
In Part I of this series, we showed how to start from the node-express-boilerplate app for real-time messaging and integration with third parties and move towards building an Activity Streams Application via Cloud Foundry. The previous app only sent simple text messages between client and server, but an Activity Streams Application processes, aggregates and renders multiple types of activities. For this new version of the application, my requirements were to show the following:
User interactions with the app running on CloudFoundry.com
Custom activities created by users on the app’s landing page
User activities from GitHub such as creating repositories or posting commits
For this reason, I decided to use Activity Strea.
Cloud Foundry provides developers with several choices of frameworks, application infrastructure services and deployment clouds. This approach to providing a platform as a service enables the fast creation of useful cloud applications that take advantage of polyglot programming and multiple data services. As an example of how this enables us to be more productive, I was able to use Node.js, Redis, and MongoDB to create an Activity Streams application in a short time, despite the fact that I mainly develop Web Applications in Ruby. Based on the developer interest after a demo of this application at NodeSummit 2012 and MongoSF 2012, I was inspired to do a 3 part blog series that fully details the creation, deployment, and scaling of this application on CloudFoundry.com.