Seemingly, Kristian Köhntopp wasn’t as weary as I was today. In his (obviously german) article Leben mit Fehlern – der Schlüssel zum Scaleout (“Living with errors – the key to scale out”), he describes how to solve scalability problems by implementing software based on a service oriented architecture (SOA) and by loosening requirements.
He explains how too much restrictions, imposed by concepts like Two-Phase Commit or ACID(Atomicity, Consistency, Isolation, Durability), can make scaling an infrastructure a difficult task. Using WEB.DE, MySQL and Amazon as examples, Kris illustrates how using an architecture that employs small distributed services as building blocks, abandoning some of those tight restrictions, and dealing with a certain level of uncertainty or inconsistency makes distributing load and gaining performance a lot easier.
It’s an article well worth reading.