News for hackers. Stuff that matters.
Re:A principled approach to system design and programming by toolslive on Thursday March 19, 2020 @07:39PM (#22632950)
> Everything should be CQRS.

For systems, this is going to be painful: you want to be able to do things like "compare-and-swap" which are already an action and a query bundled in one. You need this for 2 reasons:

   - consistency: you want the query and the update to be done in one go. atomically
   - performance: doing it like this is faster as 
     you're combining 2 things in one call, iso 2.
Re:A principled approach to system design and programming by rwhaling on Thursday March 19, 2020 @07:58PM (#22633081)
That was my immediate thought as well - CQRS doesn't fit well with the "everything should be deterministic" principle, unless they have a very different definition of CQRS than what is in common use.

In theory, it is possible to do "synchronous CQRS", where the update to your write-side is done in a single transaction with the update to the read-side, but that's not how I've ever done it in my (Scala/Postgres based) CQRS app experience.

Re:A principled approach to system design and programming by parsnips on Thursday March 19, 2020 @10:12PM (#22633896)
Compare and Swap is a command. E.g. Optimistic Concurrency.
Re:A principled approach to system design and programming by naasking on Friday March 20, 2020 @07:36AM (#22636720)
Consistency and determinism are orthogonal. Just because updates are eventually consistent, doesn't mean they exhibit any sort of indeterminism.