Going Transactionless - Scalable Data Tiers

Dan Pritchett posted his excellent "How
eBay Scales
" presentation a few months back.

It is a great look into a real-world massive distributed system and the evolution
of its scalable architecture.  One interesting thing to notice is that eBay is
a transactionless environment (meaning it doesn't use Database
Transactions
).

I have always seen the data layer as the difficult part to scale.  Separating
logic from data and working in a purely transactionless environment can mitigate this
issue.

Martin fowler commented
on this today
:

"The rationale for not using transactions was that they harm performance
at the sort of scale that eBay deals with. This effect is exacerbated by the fact
that eBay heavily partitions its data into many, many physical databases. As a result
using transactions would mean using distributed transactions, which is a common thing
to be wary of.

This heavy partitioning, and the database's central role in performance issues, means
that eBay doesn't use many other database facilities. Referential integrity
and sorting are done in application code. There's hardly any triggers or stored procedures
."