Found in 5 comments on Hacker News
gouranga · 2012-05-01 · Original thread
The ORM layer does give you ACID or rather it doesn't take it away. It does joins and transactions. It's just an abstraction. I suggest you read up on PoEEA [1] as I don't think you understand what an ORM is properly or you've had experience of some rubbish ones like ActiveRecord or Django's ORM. See Unit of Work pattern, identity map etc to start with and work back.

NHibernate, SQLAlchemy, Hibernate are where you need to look and compare.

The ORM does a few joins where a performance gain is possible but we avoid them though as they are expensive on IO and transfer.

Most of our tables match the UI 1:1 and we populate these from the domain model when it is mutated or when we can afford it to be done (either directly or via message queues). Effectively they are materialized views which are updated when data changes or before it is required. Google CQRS.

I'm not suggesting NoSQL - just caution when using RDBMS features. I'm not an advocate of NoSQL.

[1] http://www.amazon.co.uk/Enterprise-Application-Architecture-...

robdoherty2 · 2011-11-21 · Original thread
This one is supposed to be good: Patterns of Enterprise Application Architecture, by Martin Fowler http://www.amazon.com/Patterns-Enterprise-Application-Archit...

I am trying to do the same thing as you, and I recently ordered this text based on a recommendation from a mentor.

Fresh book recommendations delivered straight to your inbox every Thursday.