Skip to content
Activity Streams Real-Time Data Store backed by MongoDB(via Mongoose) and Redis
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

build status

Author: Monica Wilkinson Copyright (c) 2012 VMware, Inc


Activity Streams is a simple specification used to describe social actions around the web.

This library provides the following Activity Stream Models on Mongoose:

  • ActivityObject
  • Activity

For details on the properties each see pne of the following specifications:



var streamLib = require('activity-streams-mongoose')(options);

// Here you can extend the schemas with any plugins
streamLib.types.UserSchema.plugin(function(schema, options) {
    schema.add({ lastMod: {type: Date, default: date}});

var asmsDB = new streamLib.DB(streamLib.db, streamLib.types);

Or explicit if you need a Mongoose reference in your calling code

var mongoose = require('mongoose');
var streamLib = require('activity-streams-mongoose')(mongoose, options);
var asmsDB = new streamLib.DB(streamLib.db, streamLib.types);


  • mongoUrl --> If you want to let activity-streams-mongoose manage Mongoose for you, just pass the url for the MongoDB. Example format is mongodb://localhost/mongodb-asms

  • redis --> Hash including keys specifying connection properties

    • host
    • port
    • pass
    • database

Redis is required to be able to publish activities and subscribe to Activity Streams

To create an activity object you can do

var cf = new asmsDB.ActivityObject({displayName: "Cloud Foundry" , url: ""}); (err) {

To create an activity with an associated activity object you can do

var testAct = new asmsDB.Activity({title: "Started the app", target: target._id}); (err) {

To query the Activity Streams do

Asking for the latest 5 from stream "sfgiants"

asmsDB.Activity.getStream("sfgiants", 5, function (err, docs) {

Asking for the latest 5 from firehose

asmsDB.Activity.getFirehose(5, function (err, docs) {

To publish an activity you can do

var testAct = new asmsDB.Activity({title: "Started the app", target: target._id});

Note: This will save the activity and then publish it to the stream name

To subscribe to an Activity Stream do

var clientSendFx =  function(channel, json) {

asmsDB.Activity.subscribe('cloudfoundry-stream', clientSendFx);

To close the Activity Stream DB connections (MongoDB and Redis)


To run tests

  • Start MongoDB
  • Start Redis
npm test


Apache License

See LICENSE file for more details

Something went wrong with that request. Please try again.