TALKS
Pat Helland and Me
Pat Helland and Me: How to build stateful distributed applications that can scale almost infinitely
Abstract
In 2007, Pat Helland published “Life Beyond Distributed Transactions: An Apostate’s Opinion” in which he conducts a thought experiment on how to design a distributed database that can scale almost infinitely. While the paper explicitly addresses distributed database design, Sean T. Allen shows that the ideas are far more widely applicable, particularly in scaling stateful applications. Sean explores some of Helland’s ideas through practical examples from his experience building data processing systems using tools like Apache Storm and, more recently, developing a stateful distributed stream processor at Wallaroo Labs.
Versions of this talk
Pat Helland and Me has evolved quite a bit as I’ve given in. The 2nd half of the VelocityConf San Jose version is very different than any of the other versions. It’s very heavy on “this you need to consider if you are using this architectural pattern”. The later versions got rid of that end and instead focus on giving an example (via Wallaroo) of a scale-independent system.
If you are only going to watch one version of this talk, I’d advise watching the Papers We Love San Francisco version. It’s my favorite version.
- VelocityConf San Jose 2018 - Slides | Video
- Salesforce July 2018 - Slides
- Papers We Love San Francisco - Slides | Video
- VelocityConf New York 2018 - Slides | Video
Links
- Wallaroo
- Wallaroo Labs’ Twitter
- My Twitter
- My Personal Website
- Pony
- Pony Twitter
- Pat Helland’s Twitter
References
- Life Beyond Distributed Transactions - 2007 version
- Life Beyond Distributed Transactions - 2016 version
- Coordination Avoidance in Database Systems
- CRDT Primer
- Silence is Golden: Coordination-Avoiding Systems Design
- CAP Twelve Years Later: How the “Rules” Have Changed
- How did I get here? Building Confidence in a Distributed Stream Processor
- Wallaroo Scale-Independent Computing
- How We Built Wallaroo to Process Millions of Messages/Sec with Microsecond Latencies
- Random Slicing: Efficient and Scalable Data Placement for Large-Scale Storage Systems
- Consistent Hashing: Algorithmic Tradeoffs
Additional references
- FaRM: Fast Remote Memory
- Lasp: A Language for Distributed, Eventually Consistent Computations with CRDTs
- Latency numbers every programmer should know
Things that might have been mentioned
- Userland Frontier
- BeOS
- Zope
- Smalltalk
- Gemstone Smalltalk
- Seaside
- Actor Model
- Horizontal and Vertical Scaling
- Denormalization
- Lineage-driven Fault Injection