This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-02-14
Channels
- # aws (1)
- # bangalore-clj (1)
- # beginners (48)
- # boot (65)
- # braveandtrue (1)
- # cider (1)
- # clara (15)
- # cljs-dev (7)
- # clojure (179)
- # clojure-austin (1)
- # clojure-denmark (2)
- # clojure-greece (68)
- # clojure-italy (7)
- # clojure-russia (41)
- # clojure-serbia (9)
- # clojure-spec (44)
- # clojure-uk (27)
- # clojured (15)
- # clojureremote (20)
- # clojurescript (70)
- # community-development (2)
- # core-async (10)
- # cursive (14)
- # datomic (36)
- # defnpodcast (3)
- # emacs (13)
- # events (13)
- # hoplon (33)
- # immutant (18)
- # instaparse (2)
- # jobs (29)
- # jobs-discuss (71)
- # klipse (38)
- # lein-figwheel (4)
- # leiningen (1)
- # mount (34)
- # off-topic (36)
- # om (3)
- # onyx (51)
- # pedestal (5)
- # perun (8)
- # proton (2)
- # rdf (8)
- # re-frame (33)
- # reagent (24)
- # remote-jobs (1)
- # rum (6)
- # spacemacs (2)
- # specter (14)
- # sql (5)
- # testing (6)
- # untangled (1)
- # vim (10)
- # yada (3)
what event stores are the people in the Clojure community using for their CQRS/event sourcing setup ? I think Datomic is not very suitable, so I'm looking into a good alternative.
Heard a few cases with Kafka as the event log (I haven't built a CQRS-based server myself)
Quoting a blog about atom vs emacs:
I love lisp; I think it's the bee's knees. The first programs of any real complexity I ever wrote, I wrote in lisp. Lisp is crisp, clean, and excitingly modular; it is refreshing like a spring rain.
Emacs lisp is a rain of sewage. It's dynamically scoped. There is no namespacing. 'Tools' like defadvice make it impossible to be certain of any function's behavior. Regexes, stored in strings, are hideous and unreadable.
I've got my quote of the day: > Lisp is crisp Say it three times fast.
the first lisp I used was scheme from sicp -- and yeah, did elisp look ugly in comparison
But unfortunately I couldn’t find any job with that after I worked with it for one year, so I kind of lost the fun in programming after that
When I discovered Clojure it all made sense to me. Lisp + a platform that was commercially interesting, lots of JVM jobs
@Imergen some people use Kafka as the event store, and then index the events via Datomic for fast read access. There's even a Clojure/conj talk about this pattern
oh, it's not the conj, it's strangeloop.
This one is from the 2015 conj: https://www.youtube.com/watch?v=qDNPQo9UmJA
Also, I think the people at Cognician might be able to provide more details on their stack (Robert Stuttaford is not in this chan yet): http://www.stuttaford.me/2016/01/15/how-cognician-uses-onyx/
@lmergen this does cqrs in clojure too: https://github.com/rill-event-sourcing/rill
@lmergen as someone who is just beginning to learn about cqrs, could you tell me why you would be uneasy using psq / mysql?
different purposes — event store is typically an append-only store, but needs very high throughput
so if you need to collect billions of events a month, traditional relational databases start becoming very expensive
so it’s more like a durable, append-only logfile — you could even use S3 as an event store
however, i do consider secondary indexes and time-range lookups to be something i want in an event store
if you care a lot about throughput / latency, you can look at something like https://github.com/OpenHFT/Chronicle-Queue that can handle 10MM events/second on a single server
@tbaldridge with the latest kafka it would become possible to expose any topic as a table for quick access, also they are working on exactly once for all of streaming, and with kafka connect it’s easy to get data from and to kafka
I worked with kafka with java, not yet with clojure. But it seems like a good fit to reactively store/get data