README.md in dripdrop-0.0.2 vs README.md in dripdrop-0.0.3

- old
+ new

@@ -1,13 +1,29 @@ # dripdrop 0MQ Based App Event Monitoring / processing. A work in progress. +# Why use dripdrop? + +You want to asynchronously process / monitor arbitrary messages from your app. +dripdrop does this well for a few reasons. + +* It's fast. dripdrop doesn't slow down your app. 0MQ + Bert are fast. Sending a message never blocks. +* It's flexible. By leveraging 0MQ pub/sub sockets you can have many different processors (collectors in dripdrop) that don't impact or even care about each other +* It's easy. Check out the agent and collector examples below. You can be processing stuff in no time. + ## An example with a WebSocket UI: -To run a simple example, feeding data to a websockets UI +### You'll need to have the zmq dev libs on your machine. On OSX this means + +1. Download and build zeromq from [zeromq.org](http://www.zeromq.org/area:download) +1. The agent just uses the plain zmq gem, which runs fine on ruby 1.8.7+, *EDIT!* If you use my fork of ffi-rzmq everything should work with 1.8.7! This isn't fully tested yet though *END EDIT* this is so you can use it in say your rails app. Everything else needs ruby 1.9.2 or jruby and uses Chuck Remes [ffi-rzmq](http://github.com/chuckremes/ffi-rzmq), and [zmqmachine](http://github.com/chuckremes/zmqmachine) gems which you must build yourself. I recommend using rvm to enable the use of multiple rubies on one machine. +1. zmq_forwarder comes with zmq, use this to aggregate agent messages using the example config shown below + +### To run a simple example, feeding data to a websockets UI + #### Aggregate agents with zmq_forwarder (comes with zmq) $ zmq_forwarder examples/forwarder.cfg #### Start up the drip drop publisher example $ drip-publisher @@ -18,9 +34,11 @@ #### Start up a webserver to host the HTML/JS for a sample websocket client $ cd DRIPDROPFOLDER/example/web/ $ ruby server ## Example Topology + +You can add as many listeners as you want, or reconfigure things any way you want. Heres how I plan on using it. ![topology](http://github.com/andrewvc/dripdrop/raw/master/doc_img/topology.png "Topology") ## Sending Messages