Confict-free Replicated Data Types, Consensus Protocols, and the Cloud
Presentation to fp-syd, the Functional Programming Special Intrest Group, Sydney, 26 Jun 13.
Unfocused, gazing off into the distance with the sort of haunted stare that only combat veterans have, a programmer once said:
"Distributed systems are hard"
Incredible to bask in the glow of such wisdom. But what does it mean, and why is it different nowadays than it was in hallowed antiquity (of about 5 years ago)? The answer? Consistency. Everyone wants consistency in their data. And they can't have it.
The relentless driver for all this is the cloud; while people have been doing distributed systems for years suddenly anyone wishing to deploy on commodity infrastructure provisioned as utility computing has to deal with all the horrible dark corners of distributed systems: events happening out of order, nodes failing, unique messages being delivered multiple times, all the good stuff. Given that's the reality of our environment, the challenge is to code to it.