EEP 1.0.0-alpha5 is released
EEP (Embeded Event Processing) is a Clojure stream processing library.
1.0.0-alpha5
is a development milestone that introduces
several minor API improvements and bug fixes.
Changes between 1.0.0-alpha4 and 1.0.0-alpha5
Fixed a problem with repeated emitter evaluation
build-topology
had a bug that caused emitter given in the form of (create)
to be
re-evaluated each time the topology was updated. The bug does not affect codebases
that use a single emitter instance bound to an existing var.
Fixed a problem with add-handler
not returining an instance of emitter
Usually an emitter is stored in a var, but if you use a threading
macro such as ->
to build topologies, add-handler
failed because
it returned a caching registry. Thew new version returns the emitter,
allowing for threading macros to work.
Optional downstreams
argument for properly visualising splitters.
Because splitters only receives a function that’s responsible for the routing, it’s impossible for EEP to know where the events are routed after split. You can define a splitter with an array of all possible splits to make data flow visualisation possible.
For exmaple, following splitter will split events to even and odd ones. Along with
splitter function, pass an vector of [:even :odd]
so that visualiser would catch it.
(defsplitter *emitter* :entrypoint (fn [i] (if (even? i) :even :odd)) [:even :odd])
Changes between 1.0.0-alpha3 and 1.0.0-alpha4
Meltdown is updated to 1.0.0-aplha3
Meltown alpha3 is a release with minor API additions.
Fixed problem with RingBuffer dispatcher overflow
RingBuffer operates in it’s own pool, adding notifications blocks RingBuffer’s yielding,
therefore notify
function block forever.
EEP now has realistic throughput tests that verify that the issue is gone.
Added more options to emitter constructor
It is now possible to pass backing Dispatcher for reactor that’s handling routing for the Emitter and an environment.
Change log
EEP change log is available on GitHub.
EEP is a ClojureWerkz Project
EEP is part of the group of libraries known as ClojureWerkz, together with
- Langohr, a Clojure client for RabbitMQ that embraces the AMQP 0.9.1 model
- Elastisch, a small feature complete Clojure client for ElasticSearch
- Cassaforte, a Clojure Cassandra client
- Monger, a Clojure MongoDB client for a more civilized age
- Titanium, a Clojure graph library
- Meltdown, a fast message passing library built on top of Reactor
- Welle, a Riak client with batteries included
- Quartzite, a powerful scheduling library
and several others. If you like Elastisch, you may also like our other projects.
Let us know what you think on Twitter or on the Clojure mailing list.
Michael on behalf of the ClojureWerkz Team