Import Common.Domain #261

Closed
damianh opened this Issue Sep 26, 2013 · 10 comments

Projects

None yet

5 participants

@damianh

Since most people are using CD with NES and we seem to be doing lock-step releases, importing will lean up the deployment / support pain.

Importing CD doesn't preclude anyone from using their own domain lib of course. The decoupling will remain.

At this point, I am only considering the domain (aggregate root) side of things. I think the Sagas (em... 'ProcessManager') needs an overhaul.

@damianh damianh was assigned Sep 26, 2013
@serra

👍 for making Common.Domain a first class citizen; this would simplify my dependency management

@gregoryyoung
@damianh

I have (briefly). I have my own take on things, I suspect NEventStore.Domain won't look exactly like CD. This stuff is always very controversial. 😄

@kblooie
NEventStore member
@damianh

Actually, yeah, bring it in first, then overhauld in next NES version would prob be smoother from an upgrade perspective.

@damianh

On second thoughts, should prob bring in the Saga stuff and then do planned deprecation. If we bring in half, some people will have to still use CD and that could be a bit of a mess.

@chris-evans

I agree, bring the Saga over, and then start the overhaul. that will allow teams using CD with both Domain and Saga to just reference the new NES version without still needing to pull in CD.

@damianh

Ok, I propose importing Common domain into folder NEventStore\CommonDomain. It's namespace will remain unchanged. This means minimal impact for users.

NEventStore\Domain (NEventStore.Domain) will be reserved home for the overhaul / refactor.

@serra

@gregoryyoung @damianh for reference: is Yves' stuff referring to https://github.com/yreynhout/AggregateSource ?

@gregoryyoung
@hyrmn hyrmn added a commit that referenced this issue Sep 30, 2013
@hyrmn hyrmn CommonDomain brought in from joliver/CommonDomain - Initial stab at #261


This is an initial import of CommonDomain into NEventStore/CommonDomain.
The goal was to minimize breaking changes for existing CD users who aren't
quite ready to string all the things.

Outstanding issues / work / request for feedback:

- EventStoreRepository tracks opened snapshots and streams in a local
  dictionary. The key was a guid and came from the IAggregate.Id. It's now
  a string of bucketId and IAggregate.Id. This seems really naive. Since
  IAggregate.Id is still a Guid, this could stay as a Guid as well. Or,
  some sort of Value Object wrapper around bucketId and IAggregate.Id
  might be in order.

_ IRepository allows for loading / saving with or without a bucket

- The SagaEventStoreRepository is untouched. I haven't used CD for saga
  work so I'm unsure if adding bucketId as a saga parameter is something
  people want. I assume so, but I didn't want to add it without some
  validation

- I believe I applied the NES code style formatting to all files.
9fdf647
@damianh damianh closed this Oct 8, 2013
@damianh damianh added the New Feature label Mar 14, 2014
@damianh damianh removed their assignment May 4, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment