Hey,

Great you are looking into this Daniel!

> So, there are 6 things the client and the repo both need to access.

These 6 things listed here do not translate into 6 packages. That has to be considered more carefully.

> But the write logic, or at least the maintenance logic, should not be bundled with the leaner "read only" package.

I disagree with this being a rule or even something that is extremely important. In the end, this is not something we care about directly, and only do to avoid certain pains. I'm highly sceptical that such splitting is warranted for everything, and suggest one first looks at the interface segregation issues that plague the data access code.

Doing this well requires holding into account many more factors than have been outlined, and is probably better done in a more incremental fashion than trying to tackle all these different aspects at once. This makes me think asking the question in this format on the list is not the best way forward. In person discussion focusing on a single component is much better IMO.

Cheers

--
Jeroen De Dauw - http://www.bn2vs.com
Software craftsmanship advocate
Evil software architect at Wikimedia Germany
~=[,,_,,]:3