{quote} Notice how I did not say nested transactions, but nested service calls… On transaction per thread says it all :P {quote} Hmmm, indeed I misunderstood it, my apologies.\\ I was thinking that each service call would be a thread and the transactions representing those threads would be subtransactions of the "top-level" transaction. {quote} Regarding searches, I've talked to Mr. Gil, and he also thinks that having a domain representation over a view, in order to materialize searches faster is a pretty good trade-off. Kind of having a Search concept in your domain… What say you? {quote} So what you are saying is that the Search object would be nothing more than a view that could allow you to search objects through criterias, right? Well to me it seems a good trade-off, although I think it's dangerously approaching a DAO pattern (a generic DAO, but yet a DAO). When I was thinking about using Lucene my idea was similar to that one, but like I was expecting such idea did backfire on me. Mr. Luis Cruz (liked Mr.) pointed me out that Lucene isn't transactional aware and we would have consistency problems when a transaction would abort. And making the transaction index aware is..hmmm...spooky? Anyway I'll leave lucene idea for now.