gregoryyoung/m-r

Extraneous properties (and even class)?

ChrisSimmons opened this issue · 2 comments

I'm curious about a few things:

  • It does not appear that AggregateRoot.Version serves any purpose. While I've seen Version used actively on the aggregate in many examples (books, articles) on ES, in this case it seems extraneous. Is this just serving as an example that a non-trivial real-world app would likely have a Version property on the aggregate?
  • Similarly, it appears that EventStore.EventDescriptor.Id serves no purpose. If you take that as true, EventStore.EventDescriptor as whole seems to have no purpose as it only has Version, which Event already has. Again, is this just an illustration that a real-world ES app would have a "wrapper" like this around Event? I know that NEventStore has the EventMessage class that serves as a similar wrapper concept.

Version is not used in this code though many have taken the aggregate base and used it (which is why its there)
EventDescriptor is more internals of what an eventstore would do internally EG it can treat event as a vector of byte and only use descriptor

Got it, thank you!