Conference: Nov 5-7, 2018
Workshops: Nov 8–9, 2018
Presentation: Real-Time Collaborative Editing with CRDTs
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.
Abstract
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.
Interview
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.
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.
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.
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.
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.
Similar Talks
.
Tracks
-
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.
-
Performance Mythbusting
Real world, applied performance proofs across stacks. Hear performance consideratiosn for .NET, Python, & Java. Learn performance use cases with OpenJ9, Instagram, and Netflix.
-
Tools and Culture: What's Beyond a Stack of Containers?
Containers are not just a techology. It's a platform. Push your knowledge.
-
Web as Platform
All things Browser, from JavaScript Frameworks for animation and AR / VR to Web Assembly and from protocol work to open standards evolution.
-
Beyond Being an Individual Contributor
Beyond being an individual contributor. Building and Evolving managers and tech leadership.
-
Building Great Engineering Cultures
Why engineering culture matters. Track features org scaling, memes as a culture tool, Ally skills, and panels on diversity / inclusion.
-
Hardware Frontiers: Changes Affecting Software Developers Today
Topics around: Quantum computing, NVM, SMR, GPU, custom hardware, self-driving cars, and mobile hardware.