A functional event processing system in clojure