Description
Intro (skip it if you are in a hurry ^^ )
A few weeks ago I started a new project and keeping all data in memory and just persist a log of events is a perfect match for the requirements. I started implementing my own solution (protobuf on filesytem to persist the journal, events and an in memory projection of the data).
A few days ago I found this project and it looks like someone took my prototype and put a bit more thought and effort into it so I'm consider switching to memstate, because why maintain some quirky homebew version of it.
Reading through the documentation I noticed a few differences and don't quite understand the design choice with the command ids (GUID)
Question about command id
Are those really necessary? Couldn't just the object reference (because we are in memory) be used to track if an command was already executed or not. Persisted commands do have an implicit integer id: the position in the journal.
If I read the code right, the GUIDs are also serialized and thus every command has at least 16 byte (uncompressable, because they are random) overhead that is not needed, because it will never be used again after it's serialized.
Would be great I you could let me know if I got something wrong or what lead to this design choices. Thanks in advance