Hello, i am starting learning about ES and EventStore.
I have a doubt about starting an in memory event store node. To do that, i am running the next command:
“c:/EventStore/EventStore.ClusterNode.exe --run-projections=all --mem-db”
As i understand, it should start a clean instance without any previous data.
I am using it in order to run some learning tests, and start from scratch whenever i think i learned something.
I am having a non expected behavior when i create a new stream with the same name from previous tests, ran in another in memory instance.
For instance, I create a new event AccountCreated with no data, for a new stream “Account-1”.
Then when i navigate to that event, i has some data, apparently form previous examples, and also, it has some feature events linked in the same stream.
For doing it, i am using the event store UI.
I attached a gift with the example.
I hope i am not asking a stupid question.
Regards.
I wonder if it’s the browser caching.
Can you repeat the test, but before you check the after the restart, clear the browser cache.
Yeap! you are right! I test it with an incognito view, and it works as expected!
Another quick question, when I define projection handlers for each event, i saw some examples where they return the updated state, and other doesnt do it:
when({ someEvent: (s, e) => {s.count +=1; return s; }})
vs
when({ someEvent: (s, e) => {s.count +=1; }})
vs
when({ someEvent: (s, e) => {return {count: s.count + 1}}})
What is the implication of this?
Is expected to return something, or just update the received state is the expectation of each handler?
Thanks a lot for the help
To be honest, I don’t know the difference between doing s.count+++ and return s; etc
I always assumed no difference at all, but thats just me probably not fully understanding the mechanics of this.
In my projections, I set my state directly, like:
s.count ++;
And don’t return
Do you view the state changes via the UI. I would be interested to hear what actually happens in these situations.
Returning updated state and updating without returning work perfectly.
I will try the 3th option right now
3th option looks also good.
Maybe it will be easy to test because of the immutability.
Nice!
We use a testing framework for projections which I think enforces us occasionally to return the state actually.
nice thanks for the info!
I still have have a lot to learn!
1 Like