Internal Design of Onyx
github.com
github.com
It seems this is the current popular technique (and rising in popularity) to solving some really long-standing, hard, data processing problems and related performance concerns - really an extension beyond the progress we made with distributed MapReduce algorithms and the like in Hadoop.
There are certainly a lot of implementations coming out - why would one choose Onyx over say, something like Spark? Is it just the compatibility with the Clojure programming language and the associated, implied benefits of functional programming paradigms (among others?).
I talked a little bit about why I wrote Onyx on the Clojure mailing list: https://groups.google.com/d/msg/clojure/OmHzAEfYe9U/33e0a0l3...
It's mostly driven by the need to use data structures in places where I didn't have them - I only had things like macros and functional composition.
In particular, I'm interested to know if this supports exactly-once messaging semantics, and if so, what the implementation looks like. Anyone here have experience with this?
It seems like transactions ought to be enough for the latter -- I'll have a look. Thanks!