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