Events in Riak
Event-Driven (not interrupt-driven) Operations
One of the most difficult things about operating a distributed system is extracting useful and actionable intelligence from all of the many possible sources of data at hand. Sometimes it's hard to find all the logs and information you need; at other times you're drowning in log files and still can't figure out what to do.
Riak gives you flexibility and power in gathering the data you need for effective monitoring, debugging, and operations.
Using a simple event-handler API, you can write a very small module declaring exactly what information you want -- pattern-matching by node, code module, or specific event type -- and whatever you want to do with that information -- log to a file, interact with your monitoring dashboard of choice, or arbitrary other activity. You can then attach that event listener to any node in your cluster and all matching events, no matter where they occur, will be forwarded to the listener so that you can take action.
Riak comes with a simple catch-all event listener that hears every single event in the cluster and logs them out to a named file. That can be useful, but more importantly it can serve as an example of the simplicity of the event interface.