This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
- # announcements (9)
- # beginners (96)
- # calva (14)
- # cider (49)
- # clj-kondo (29)
- # cljsrn (5)
- # clojure (55)
- # clojure-dev (37)
- # clojure-europe (4)
- # clojure-italy (4)
- # clojure-nl (5)
- # clojure-spec (5)
- # clojure-switzerland (3)
- # clojure-uk (5)
- # clojurescript (172)
- # cursive (14)
- # datomic (3)
- # duct (1)
- # emacs (6)
- # fulcro (17)
- # jobs (1)
- # leiningen (6)
- # nrepl (11)
- # off-topic (26)
- # pedestal (2)
- # re-frame (20)
- # reagent (9)
- # remote-jobs (3)
- # shadow-cljs (67)
- # spacemacs (24)
- # specter (6)
- # test-check (3)
- # tools-deps (18)
If I really want to code something out, I need repetitive high paced music like pendulum. That - for me - has a chance to get me in that ‘flow’ state 🙂
It usually makes me feel small, with a sensation of a considerable weight put on my chest, and as if enclosed in an invisible container just looking at my screen with small POV and the sides of what I’m seeing blurred.
there was a website making fun of java annotations with made up examples does anyone has a link?
For traditional CQRS+event-sourcing, commands are sent from client to server before any events + state-creation occurs. I'd like to change this a little -- allow immediate processing of certain commands on the client to generate local events & state, then synchronize these with the backend at a later time. I suspect this will require a rewinding+replay capability to handle conflicts. Could anyone recommend any resources that cover this topic?
Is it only certain types of commands or does it depend on the client which one? Like you have
doFoo and want it on the client only on certain conditions, but you do eventually want all the
FooResult on the server?
Only certain types of commands. For instance, I don't want clients to be able to execute
create-user command without backend validation, but I do want them to be able to execute a
I'd like the client apps to immediately accept some commands, then generate events, then generate the corresponding local state (such as a datastructure for a TODO item).
I want this to apply the original command on the backend once received, then if the backend generates a different event (e.g. conflict), the client to be able to rewind related events & replay them -- possibly asking for user input if the conflict can't be programmatically resolved.
^ I'm still clarifying this in my head, but it's roughly the flow that should happen... the CQRS+event sourcing resources I can find all assume you'll ship commands to the backend before clients receive state, but this would result in a poor client experience in the case of a mobile app. So I want to be able to "cheat" with a CQRS+ES equivalent of "optimistic updates"
If you just have all the
added-todo events send to the back end it would be fine right, with some id to prevent duplication. I also struggle with 'proper' CQRS but it seems more complicated than needed for a lot of things. In the case of todo's it might even make more sense to send complete
todosUpdated events to the server.
Sending the event may be the way to go -- not sure if sending the command is necessary other than just persisting it for the historical record. I'll keep working at it -- pretty sure I can tease out the right flow once I start adding tests & find which scenarios break
As an aside, I've seen a few sources claim full system CQRS+ES is an anti-pattern... I'm not convinced yet, but I'm convinced to find out 😉 IMO there's some interesting capabilities to be discovered here, especially as the command+event code is being shared between frontends & backends.
In https://github.com/openweb-nl/open-bank-mark I didn't let the commands get all the way to the frontend. But the GraphQL it uses is driven by commands + events. Might give some inspiration.
This is an excellent resource to parse through -- it'll take me a while, but thank you. I'm interested in exactly how the Heartbeat, Synchronizer, & Command handler is used in this setup... the system I'm building has an Onyx runtime to process commands from Kafka & a Datomic instance to power the frontends, so different pieces trying to achieve a similar effect
a Monger related question:
i'm trying to
ordered option set to false.
insert-many does not seem to accept any option other than
WriteConcern although mongo supports it.
@veix.q5 I don't see an
insert-many in the latest version of Monger's source -- which namespace is that in, or do you mean