Presentation: Real-Time Collaborative Editing with CRDTs

Track: Modern CS in the Real World

Location: Pacific DEKJ

Duration: 1:40pm - 2:30pm

Day of week: Wednesday

Level: Intermediate - Advanced

Persona: Backend Developer, Developer

Share this on:

What You’ll Learn

  • What exactly is a CRDT and why they are so powerful.
  • Distributed problems require a different framework for problem solving.


Real-time collaborative editing gives users the illusion that they are editing the same document, but in reality, each collaborator makes edits to their own local replica of the document to ensure a low-latency typing experience. Each user's local operations must then be transmitted to remote collaborators and integrated so that the contents of every replica remain equivalent and that the intentions behind each participant's edits are preserved. This challenge has been the focus of nearly three decades of ongoing research in the field of operational transformation, which has produced various algorithms with different trade-offs that are notoriously difficult to implement. In 2011, a new conceptual framework called conflict-free replicated data types (CRDTs) emerged to offer a significantly simpler approach to collaborative text editing and related distributed computing problems. In this talk, we'll explore a new library that draws from the latest CRDT research to enable real-time collaborative text editing in a fully distributed setting.


What role do you have at Github?

I work on the text editor for almost the last six years. And it's sort of a mix on a given day. A lot of my days are spent trying to improve the performance of the system. Reading javascript is a lot of it; some good days of writing C++. I really enjoy that. And yet looking at her request from the team members members of the community raining or all day everyday it's pretty cool.

What is your motivation for this talk?

I've been learning a lot about how to implement collaborative editing and discovered this really interesting field of conflict free replicated data types. I feel like my work with a couple of my colleagues has absorbed the best from that field of research, advanced the state of the art a little bit, and I'd put it in practice. It led to a real working library. So I think it's an opportunity to share everything that we've learned and also share some cool software that people can get their hands on and use. Taking things out of research and putting it in practice is something I love to do; I love to share.

Who should come to your talk?

So I think people who are interested in distributed systems problems. Folks who wonder about how we reason about keeping data in sync across multiple machines that are loosely connected? Someone who has a theoretical bent. That's said, it doesn't really require that you have like explicit background in any of this stuff; you shouldn't need a lot of prior knowledge.

What can people come take away from this talk?

So you could take away from it I think is how all other similar problems are kinds of problems in this framework. You know it learns generals who's there but also you know the library that we're going to be talking to is sort of open source library that if you have the problem of needing to know distributed setting and it a text manage sequence data the library itself might be useful to you as well because who is known to distribute system not whether they know it or not.

What technology keeps you up at night?

I'm really interested in sort of this emerging field a fully distributed paradigm like blockchain but also like peer to peer RPC types of technologies and the decentralizing of the internet. It's interesting to me and it keeps me up at night with excitement. I just like how fascinating it is.

Speaker: Nathan Sobo

Founding Member of the Atom Editor Team @GitHub

Nathan Sobo is a founding member of the Atom Editor team at GitHub. When he isn't obsessing about software, he also enjoys yoga, floating in sensory deprivation chambers, cycling, and travel. He lives in Boulder, Colorado with his wife and daughter.

Find Nathan Sobo at



  • Architectures You've Always Wondered About

    Architectural practices from the world's most well-known properties, featuring startups, massive scale, evolving architectures, and software tools used by nearly all of us.

  • Going Serverless

    Learn about the state of Serverless & how to successfully leverage it! Lessons learned in the track hit on security, scalability, IoT, and offer warnings to watch out for.

  • Microservices: Patterns and Practices

    Stories of success and failure building modern Microservices, including event sourcing, reactive, decomposition, & more.

  • DevOps: You Build It, You Run It

    Pushing DevOps beyond adoption into cultural change. Hear about designing resilience, managing alerting, CI/CD lessons, & security. Features lessons from open source, Linkedin, Netflix, Financial Times, & more. 

  • The Art of Chaos Engineering

    Failure is going to happen - Are you ready? Chaos engineering is an emerging discipline - What is the state of the art?

  • The Whole Engineer

    Success as an engineer is more than writing code. Hear inward looking thoughts on inclusion, attitude, leadership, remote working, and not becoming the brilliant jerk.

  • Evolving Java

    Java continues to evolve & change. Track covers Spring 5, async, Kotlin, serverless, the 6-month cadence plans, & AI/ML use cases.

  • Security: Attacking and Defending

    Offense and defensive security evolution that application developers should know about including SGX Enclaves, effects of AI, software exploitation techniques, & crowd defense

  • The Practice & Frontiers of AI

    Learn about machine learning in practice and on the horizon. Learn about ML at Quora, Uber's Michelangelo, ML workflow with Netflix Meson and topics on Bots, Conversational interfaces, automation, and deployment practices in the space.

  • 21st Century Languages

    Compile to Native, Microservices, Machine learning... tailor-made languages solving modern challenges, featuring use cases around Go, Rust, C#, and Elm.

  • Modern CS in the Real World

    Applied trends in Computer Science that are likely to affect Software Engineers today. Topics include category theory, crypto, CRDT's, logic-based automated reasoning, and more.

  • Stream Processing In The Modern Age

    Compelling applications of stream processing using Flink, Beam, Spark, Strymon & recent advances in the field, including Custom Windowing, Stateful Streaming, SQL over Streams.  

Conference for Professional Software Developers