One other point I should have expanded more. Viewing your domain model as a 
state machine responding to a sequential list of commands allows you to easily 
isolate time as just another property. I have a [:set-time {:now ….}] which 
emits a [:time-set {:now …}] which opens the door to so many things. Of course, 
you can’t ever to a (Date.) anywhere instead you need to check the denormalised 
time store, but ok. A lot of our domain is about reacting to things over time 
so now I can start the domain without time changing then issue a [:set-time…] 
and then inspect the domain and so on. Very very powerful.

> On 15 Jul 2015, at 22:14, Johanna Belanger <johanna.belan...@gmail.com> wrote:
> 
> I am always eager to hear anything and everything about your experience with 
> this. Especially downsides. =) 
> 
> I haven't done ES yet. My hydration code is definitely not that lovely. What 
> do you think about ES vs Datomic? (Probably not the right thread for that 
> question, huh?)
> 
> On Sunday, July 12, 2015 at 8:20:54 AM UTC-7, Colin Yates wrote:
> My latest project uses a CQRS and event sourcing design and the power it 
> gives, coupled with Clojure is just fantastic. Hydrating an object becomes 
> (merge {} (event-store/load ar-id)) - just fantastic.
> 
> I too find a lot of sympathy between CQRS, event sourcing, FRP and Clojure 
> which I keep meaning to blog about, but my todo list is a mile long. Still, 
> highly recommend that architecture. Lots of downsides; everything is a trade 
> off, but conceptually, yeah, it gets a lot right.
> 
>> On 12 Jul 2015, at 05:34, Matt Bailey <ambit...@ <>gmail.com 
>> <http://gmail.com/>> wrote:
>> 
>> Johanna,
>> 
>> I noticed you mentioned CQRS. In my work, we use CQRS heavily, specifically 
>> the Axon framework for Java (utilizing Spring and Hibernate). I got into 
>> Clojure through watching Rich Hickey's talks and figured that any language 
>> that he wrote had to be good.
>> 
>> It's remarkable to me how cleanly the concepts applied in CQRS map to 
>> concepts in Clojure. The funny thing is that CQRS would never be necessary 
>> if it wasn't for languages like C# and Java.
>> 
>> It can be discouraging to see people's eyes glaze over when you talk about 
>> code as a series of transformations on the input. Many people limit their 
>> understanding of code to a very procedural style with ifs, elses and "helper 
>> methods" that have side effects.
>> 
>> Sorry I don't have any words of wisdom on how to evangelize Clojure, but I 
>> am glad to see someone else noted the parallels between CQRS and a more 
>> functional style of programming.
>> 
>> Cheers!
>> -Matt
>> 
>> On Saturday, July 11, 2015 at 2:47:31 PM UTC-7, Johanna Belanger wrote:
>> That's really cool, thanks!
>> 
>> On Saturday, July 11, 2015 at 5:27:37 AM UTC-7, juvenn wrote:
>> Hi Johanna,
>> 
>> I don’t know if it'll work for your team, but I find Shaun Le Bron's 
>> "Interactive guide to Tetris in ClojureScript” the most succinct and 
>> beautiful way of showing power of Clojure and ClojureScript.
>> 
>> https://github.com/shaunlebron/t3tr0s-slides 
>> <https://github.com/shaunlebron/t3tr0s-slides>
>> 
>> Have fun!
>> -- 
>> Juvenn Woo
>> Sent with Sparrow <http://www.sparrowmailapp.com/?sig>
>> 
>> On Saturday, 11 July, 2015 at 1:24 pm, Johanna Belanger wrote:
>> 
>>> I ended up giving him a brief description of Clojure, with stress on its 
>>> ability to do heavy lifting with very little code, and sent him a link to 
>>> Neal Ford's talk "The Curious Clojurist" 
>>> <https://www.youtube.com/watch?v=bxLnpgnDApg>. We'll see what happens. 
>>> Thanks everyone for your advice.
>>> 
>>> On Thursday, July 9, 2015 at 3:20:23 PM UTC-7, Johanna Belanger wrote:
>>> Hi :)
>>> 
>>> I've recently broached the subject of Clojure with another dev in my 
>>> organization, and his response was basically "What's Clojure"? and I'm not 
>>> sure how to answer that in a way that might inspire him. "It's a 
>>> dynamically-typed functional Lisp with persistent immutable data structures 
>>> that runs on the JVM" doesn't seem like it will grab his interest. =)
>>> 
>>> I work primarily in .NET, and he does enterprise Java. I don't know him 
>>> well enough to know how happy he is with it. He did express interest in 
>>> learning .Net.
>>> 
>>>  I came to an appreciation of Clojure through 
>>> 
>>> -CQRS (the power of decomplection!)
>>> -Sussman and Abelson's SICP class at MIT online (the power of homoiconicity 
>>> and functions!)
>>> -the death of Silverlight (alternatives to Javascript in the browser?)
>>> 
>>> By the time I found Rich Hickey's talks (eg Simple Made Easy) I was pretty 
>>> well primed to love Clojure. I've been using it for little personal 
>>> projects and prototyping for a couple of years, but I haven't put it in 
>>> production because no one else here knows it.
>>> 
>>> Could anyone tell me how they got from enterprise Java to Clojure?
>>> 
>>> Thanks very much,
>>> Johanna
>>> 
>>> 
>>> -- 
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clo...@ <>googlegroups.com 
>>> <http://googlegroups.com/>
>>> Note that posts from new members are moderated - please be patient with 
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+u...@ <>googlegroups.com <http://googlegroups.com/>
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en 
>>> <http://groups.google.com/group/clojure?hl=en>
>>> --- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to clojure+u...@ <>googlegroups.com <http://googlegroups.com/>.
>>> For more options, visit https://groups.google.com/d/optout 
>>> <https://groups.google.com/d/optout>.
>> 
>> 
>> -- 
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clo...@googlegroups.com <>
>> Note that posts from new members are moderated - please be patient with your 
>> first post.
>> To unsubscribe from this group, send email to
>> clojure+u...@googlegroups.com <>
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en 
>> <http://groups.google.com/group/clojure?hl=en>
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to clojure+u...@googlegroups.com <>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
> 
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en 
> <http://groups.google.com/group/clojure?hl=en>
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com 
> <mailto:clojure+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to