WARNING: This project is still in alpha, use with caution.
Last updated 7 years ago by olahol .
Original npm · Tarball · package.json
$ cnpm install activity-engine 
SYNC missed versions from official npm registry.


WARNING: This project is still in alpha, use with caution.

A nimble and follower aware fan out activity stream framework that uses Redis as backend.


Activity streams are a major part of how people consume information on the web today. Twitter's timeline is an activity stream where the activities are tweets and they are ordered by time, Facebook's news feed is an activity stream ordered by EdgeRank. This framework is for managing such activity streams abstracting away they nitty-gritty of routing activities to the right stream and ordering them.

This framework was inspired by the talk "Timelines @ Twitter" given by Arya Asemanfar.




A unique identifier, should usually be a key pointing to a database row (for example a primary key in a SQL table).

Activity stream

A list of activities ordered by their score (default score is time).


Something that performs or receives activities, a user, a group, a tag, an image etc. All entities have two activity streams, a sent activity stream which consists of its own activities and an inbox activity stream which consist of the activities of the entities it's following. Like an activity an entity should usually be a key pointing to a database object, show that metadata can be retrieved.


An entity can follow another entity, which means it will be routed activies from that entitiy.


Engine.sent(entity, offset, take, cb(err, activities))

Engine.inbox(entity, offset, take, cb(err, activities)), activity, cb(err))

Engine.put(entity, activity, cb(err))

Engine.spread(entity, activity, cb(err))

Engine.unpost(entity, activity, cb(err))

Engine.unput(entity, activity, cb(err))

Engine.unspread(entity, activity, cb(err))

Engine.follow(from, to, cb(err))

Engine.subscribe(from, to, cb(err))

Engine.sprinkle(from, to, cb(err))

Engine.unfollow(from, to, cb(err))

Engine.unsubscribe(from, to, cb(err))

Engine.nub(from, to, cb(err))

Current Tags

  • 0.0.2-alpha                                ...           latest (7 years ago)

2 Versions

  • 0.0.2-alpha                                ...           7 years ago
  • 0.0.1-alpha                                ...           7 years ago
Maintainers (1)
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (4)
Dev Dependencies (2)
Dependents (0)

Copyright 2014 - 2016 © |