All blogs / Distributed systems / cloud
Martin Kleppmann's blog
- Posts
- 260 from 1 Apr 2007 to 7 Oct 2026
- Posting
- monthly (10 in the last year)
- Kind
- personal blog
- Feed
- https://feeds.feedburner.com/martinkl?format=xml
2026 7
- Announcing the Centre for Cryptographic Trust Infrastructure (CCTI)
- 24 Sep 2026 at 45th International Symposium on Reliable Distributed Systems (SRDS)
- 12 Jul 2026 at Local-First Conference
- Emission Impossible: Cryptographically Verifiable Carbon Emissions Reporting for Cloud Computing
- Designing Data-Intensive Applications, 2nd Edition
- 17 Mar 2026 at QCon London
- 24 Feb 2026 at Local First (LoFi) meetup
2025 5
- Prediction: AI will make formal verification go mainstream
- The Art of the Fugue: Minimizing Interleaving in Collaborative Text Editing
- 02 Apr 2025 at 20th European Conference on Computer Systems (EuroSys)
- 31 Mar 2025 at 12th Workshop on Principles and Practice of Consistency for Distributed Data (PaPoC)
- Kintsugi: Decentralized E2EE Key Recovery
2024 9
- Bluesky and the AT Protocol: Usable Decentralized Social Media
- Emission Impossible: privacy-preserving carbon emissions claims
- Pudding: user discovery for anonymity networks
- 30 May 2024 at Local-First Conference
- Pudding: Private User Discovery in Anonymity Networks
- Undo and Redo Support for Replicated Registers
- Extending JSON CRDTs with Move Operations
- 27 Feb 2024 at Local First (LoFi) meetup
- 2023 year in review
2023 8
- 06 Nov 2023 at IETF-118 Decentralization of the Internet Research Group
- 19 Oct 2023 at KASTEL Distinguished Lecture Series
- 27 Sep 2023 at ACM Tech Talks
- 22 Sep 2023 at Strange Loop
- 29 Jun 2023 at GOTO Amsterdam
- 28 Jun 2023 at Amsterdam |> Elixir
- Die Türme des Februar: Eine Musical-Adaption
- Upwelling: Combining real-time collaboration with version control for writers
2022 9
- Peritext: A CRDT for Collaborative Rich Text Editing
- Research for Practice: Convergence
- Verifying distributed systems with Isabelle/HOL
- Assessing the understandability of a distributed algorithm by tweeting buggy pseudocode
- 29 Apr 2022 at Have You Tried Rubbing A Database On It? (HYTRADBOI)
- Secret Colors: A Gentle Introduction to Cryptography
- 05 Apr 2022 at 9th Workshop on Principles and Practice of Consistency for Distributed Data (PaPoC)
- 28 Mar 2022 at RainbowFS final workshop
- Book Review: The Future of Fusion Energy
2021 15
- 07 Dec 2021 at 2nd International Workshop on Distributed Infrastructure for Common Good (DICG)
- 25 Nov 2021 at Computer Laboratory Systems Research Group Seminars
- Key Agreement for Decentralized Secure Group Messaging with Strong Security Guarantees
- 07 Oct 2021 at Protocol Labs ConsensusDays
- A highly-available move operation for replicated trees
- Several podcast interviews
- Rollercoaster: An Efficient Group-Multicast Scheme for Mix Networks
- 16 Jul 2021 at 14th Workshop on Hot Topics in Privacy Enhancing Technologies (HotPETs)
- 02 Jul 2021 at Keynote at 15th ACM International Conference on Distributed and Event-based Systems (DEBS)
- 14 Jun 2021 at emergenCITY “Software and Resilience” Workshop
- 04 Jun 2021 at Craft Conference
- 04 May 2021 at Emerging Technologies for the Enterprise (Philly ETE)
- It's time to say goodbye to the GPL
- Building the future of computing, with your help
- Decentralised content moderation
2020 9
- Using Bloom filters to efficiently synchronise hash graphs
- Byzantine Eventual Consistency and the Fundamental Limits of Peer-to-Peer Databases
- New courses on distributed systems and elliptic curve cryptography
- Implementing Curve25519/X25519: A Tutorial on Elliptic Curve Cryptography
- Writing a book: is it worth it?
- 06 Jul 2020 at Hydra distributed computing conference
- 27 Apr 2020 at 7th Workshop on Principles and Practice of Consistency for Distributed Data (PaPoC)
- PushPin: Towards Production-Quality Peer-to-Peer Collaboration
- A brief Brexit lament
2019 17
- 08 Nov 2019 at Code Mesh
- Research update for 2019
- Local-first software: You own your data, in spite of the cloud
- 02 Oct 2019 at Tagung über Tonke Dragts Jugendromane
- 14 Sep 2019 at Strange Loop
- Snapdoc: Authenticated snapshots with history privacy in peer-to-peer collaborative editing
- 11 Jul 2019 at Hydra distributed computing conference
- Figuring out the future of distributed data systems (interview)
- 07 Jun 2019 at TNG Big Techday
- 04 Jun 2019 at Hochschule Aalen
- 15 May 2019 at LightKone workshop on Verification, Security and Antidote
- 15 May 2019 at TU Kaiserslautern
- 13 May 2019 at Kafka Summit London
- Online Event Processing: Achieving consistency where distributed transactions have failed
- Ghost trace on the wire? Using key evidence for informed decisions
- 03 Apr 2019 at University of Cambridge Department of Computer Science and Technology
- 25 Mar 2019 at 6th Workshop on Principles and Practice of Consistency for Distributed Data (PaPoC)
2018 14
- 02 Nov 2018 at Velocity London
- 17 Oct 2018 at Kafka Summit
- 26 Sep 2018 at Distributed Computing and Analytics Workshop
- 12 Sep 2018 at MobiUK
- 27 Jul 2018 at LADIS
- 24 May 2018 at J on the Beach
- OpSets: Sequential Specifications for Replicated Datatypes (Extended Version)
- 10 May 2018 at Craft Conference
- OpSets: Sequential Specifications for Replicated Datatypes (Proof Document)
- 20 Mar 2018 at 26th International Workshop on Security Protocols
- Apache Samza
- 05 Mar 2018 at QCon London
- 26 Feb 2018 at Dagstuhl Seminar 18091
- Should you put several event types in the same Kafka topic?
2017 8
- Verifying Strong Eventual Consistency in Distributed Systems
- 23 Oct 2017 at Polyglot Vancouver
- A framework for establishing Strong Eventual Consistency for Conflict-free Replicated Datatypes
- 19 Jun 2017 at Curry On
- A Conflict-Free Replicated JSON Datatype
- Designing Data-Intensive Applications
- Drawing a map of distributed data systems
- The probability of data loss in large clusters
2016 13
- 15 Nov 2016 at GOTO Berlin
- 03 Nov 2016 at Code Mesh
- 26 Oct 2016 at University of Cambridge Computer Laboratory
- 16 Sep 2016 at Strange Loop
- Data Governance and Modern Computer Systems
- Making Sense of Stream Processing
- Announcing TRVE DATA: Placing a bit less trust in the cloud
- Device security and the FBI
- 07 Mar 2016 at QCon London
- 04 Mar 2016 at University of Cambridge
- Should law enforcement services have a backdoor into smartphones?
- How to do distributed locking
- 29 Jan 2016 at Domain Driven Design Europe
2015 33
- My year 2015 in review
- Kafka, Samza and the Unix philosophy of distributed data
- 08 Dec 2015 at 9th International Conference on Passwords
- 13 Nov 2015 at All Your Base
- The Investigatory Powers Bill would increase cybercrime
- 06 Nov 2015 at Øredev
- 05 Nov 2015 at Øredev
- 04 Nov 2015 at Code Mesh
- 30 Oct 2015 at Crunch Conference
- The Recurse Center and the joy of learning
- 30 Sep 2015 at Strata + Hadoop World
- 28 Sep 2015 at Recurse Center
- 26 Sep 2015 at Strange Loop
- 25 Sep 2015 at Strange Loop
- A critique of the CAP theorem
- Kafka, Samza, and the Unix philosophy of distributed data
- 05 Aug 2015 at UK Hadoop Users Group
- 08 Jul 2015 at Papers We Love
- 05 Jun 2015 at UK Government Digital Service
- 02 Jun 2015 at Berlin Buzzwords
- Using logs to build a solid data infrastructure (or: why dual writes are a bad idea)
- Please stop calling databases CP or AP
- 06 May 2015 at Strata + Hadoop World
- 24 Apr 2015 at Craft Conf
- Bottled Water: Real-time integration of PostgreSQL and Kafka
- Real-time full-text search with Luwak and Samza
- 05 Mar 2015 at Imperial College London
- Turning the database inside-out with Apache Samza
- 11 Feb 2015 at Salesforce.com
- 04 Feb 2015 at Jfokus
- 31 Jan 2015 at FOSDEM (Open Source Search Room)
- Stream processing, Event sourcing, Reactive, CEP… and making sense of it all
- 24 Jan 2015 at /dev/winter
2014 17
- Wouldn’t it be fun to build your own Google?
- 02 Dec 2014 at Unified Log London
- Hermitage: Testing the “I” in ACID
- 18 Nov 2014 at Budapest Big Data meetup
- 18 Nov 2014 at ApacheCon Europe
- 13 Nov 2014 at Imperial College London LSDS group
- 12 Nov 2014 at University of Cambridge Computer Laboratory
- 30 Oct 2014 at STAC Summit
- 28 Oct 2014 at Span conference
- 16 Oct 2014 at Strata + Hadoop World
- 18 Sep 2014 at Strange Loop
- Hey, I'm writing a book!
- Upcoming conference talks about Samza
- 27 May 2014 at Berlin Buzzwords
- 13 May 2014 at University of Cambridge Computer Laboratory, Business Studies Seminars
- 03 Apr 2014 at AHL (Man Group)
- Six things I wish we had known about scaling
2013 4
2012 4
2011 4
2010 9
- Having a launched product is hard
- Intuition has no transfer encoding
- Good things are hard to articulate
- 31 May 2010 at RailsWayCon
- Valuation caps on convertible notes, explained with graphs
- Our social future
- Hey, what happened just then?
- Learning about our customers
- How to negotiate a price: Return on Indignation
2009 22
- How we totally ignored our customers
- 12 Dec 2009 at Ruby Manor 2: Manor Harder
- My first exit
- Ending Browser Pain on the Startup Success Podcast
- 10 Crucial Questions for B2B Startup Founders: A Workshop at Business of Software 2009
- Running a Workshop for Startup Founders
- Update on Go Test It
- The Python Paradox is now the Scala Paradox
- How to pull off a slick tech demo (in 5 easy steps)
- 24 Jul 2009 at Rails Underground
- Should you go beyond relational databases?
- Customer testimonial: Bid for Wine
- Building Go Test It: Fun with Scala and REST APIs
- My talk on the Invoicing Gem 0.2
- 20 Apr 2009 at London Ruby User Group (LRUG)
- Managing Meta: Thoughts on focus and priorities
- Doing a PhD
- OAccounts - Setting your accounts data free
- Ruby Invoicing Gem released
- CamCow (Cambridge Coworking) Update
- Flickr API security weakness, and thoughts about web APIs in general
- Bupa's 'Quitclock' Facebook app now online
2008 31
- Looking back at 2008, Plans for 2009
- i18n and social web: We still haven't figured it out
- How to meet interesting people in Cambridge
- The most boring topic in the world (except for the Terry Pratchett references)
- Coworking: Amazing
- Bid for Wine is up and running
- Load/performance testing a Rails application with ApacheBench
- Implementing constrained rigid body simulation - source code now available
- Semantic web updates
- Selenium in real-world projects: Automated testing for web applications
- Bid for Wine, online wine auctions coming soon
- The Chronophage and a story about John Taylor
- BarCamp Brighton - Notes
- Comparing floating-point and decimal in Python
- Context-sensitive constructions in English
- Bug trackers and version control
- Ubuntu upgrade woes
- Hermann Bondi: Arrogance of certainty
- Ruby on Rails vs. Java Enterprise
- The Tour de France metaphor for entrepreneurship
- Do-it-yourself 3G iPhone
- On the importance of ambition
- How to learn to stop hating the cellular telephone industry
- Some mobile internet usage statistics
- A day of remembrance for the digitally excluded
- Update on German train ticket machines
- Bad usability calendar
- Potted plants and the mobile web
- The economic case for open source (for Google, Nokia etc.)
- iPhone specific web sites -- do they make sense?
- Imitating the iPhone User Agent in Firefox
2007 21
- Christmas, political correctness and cultural identity
- The Camden Food Co.: Inspired customer service
- Ept Computing's website re-launched
- Increasing user satisfaction on the mobile web: Technical considerations
- Trends 2008: Web access everywhere; e-commerce
- Mobile web design is so different from the desktop web
- Find my nearest toilet, curry, whatever
- Dream teams, team dreams
- Screenshots from Windows Vista Update
- Why the mobile web is so slow
- Android -- Google's throw-away mobile operating system
- Challenges of interface design for mobile devices
- This is not a review of the iPhone
- Future of Mobile conference
- Train ticket machines in Germany (UK vs. Germany Part 2)
- Blog coming back to life
- User experience importance is being recognised
- Train ticket machines -- UK vs. Germany (Part 1)
- Usability aspects of gas cookers
- Yes/No/Cancel causes Aspirin sales to soar
- Simulation of colliding constrained rigid bodies