I have privately discussed this with my good friend Paulo, but I thought that I should make a comment here anyway. I believe the article is very well written. It approaches topics I think are very relevant in the context of DDD (the thinks that make it work). I even learned a couple of things myself :) __Why these topics?__ The first thing I should explain is why I think these are important topics. To a purist DDD developer, these subjects are pretty much non-existent. We believe the underlaying architecture takes care of that stuff to us. Rarely do we have to go down to the level of the inner workings of the frameworks. However, when I explain the merits and workings of DDD to some old school developer (read: people who only understand SQL+VB and the concept of a domain model is somewhat blurred with ER models) I get stuck to explaining them in terms they understand. And still they often end up asking "But wait... where do you code the services layer?". So, and even though Paulo as explained pretty well how do relations between objects work (keys and such), I now raise the question on how one can invoke these methods from a transactional perspective. With SOAs, the transactional unit is often a service, and its invocation generates a unique transactional context in which all changes occur (can you find out why simplistically speaking calling services within services is a bad idea?). How does DDD get around that (bear in mind that we strive for transparency from the perpective of business code)? I've seen a couple of perspectives (dare I say "aspects"?), but I urge anyone to come up with their own views :P __Yet another point__ Another point that I think is worth noting is object search. Another frequent question I get is how do I do a search with a set of criteria. Typically, developers create a database view, with fields for every criteria included in the search, plus the results columns intended. From there, a DAO is created to use with this view - with more or less flexibility concerning the use of criteria: use of conjunction (And, Or, ...), operators (Like, In, Is, Between, ...). This DAO will then yield something like a datatable (.NET specifics, sorry :P) which we'll use to present the results. How can we reach this flexibility with DDD? To this, I do not know many approaches, but I promise I'll look into the possibilities Hibernate offers.