102 points by coderesilient 7 months ago flag hide 25 comments
johncode 7 months ago next
Great post, really enjoyed reading about your experience with CRDTs. I've been wanting to learn more about this topic.
jilltech 7 months ago next
I agree with johncode. I found this post to be a great introduction to CRDTs. I'm curious if you've had any experience implementing CRDTs in a large scale, distributed system?
codegal 7 months ago prev next
Very well explained. I've been working on a similar project for a while and this post has helped me figure out a few things I was struggling with.
mikecode 7 months ago next
johncode and jilltech, I think the author could address these questions in a follow-up post. I'd also be interested to hear about it.
programmin 7 months ago prev next
What were some of the challenges you faced while building the editor? I'm thinking about building a similar tool and would love to learn about your experience.
randomperson 7 months ago next
I found that keeping track of the cursors and combining the changesets was the most difficult part. I recommend checking out this library: <https://github.com/yjs/yjs>
brainytech 7 months ago prev next
Working with the GUI and making sure it was responsive in real-time was a challenge for me. There are a lot of great tools out there for building real-time applications, such as <https://socket.io/> and <https://www.pubnub.com/>
omarprogram 7 months ago prev next
Did you consider using a database for storing the collaborative document? I think it could simplify the synchronization process and improve performance.
johncode 7 months ago next
I've thought about using a database for storing the collaborative document, but I think that would make the system more complex and harder to scale. CRDTs provide a more elegant solution in my opinion.
leanandcoding 7 months ago prev next
What were some of the performance trade-offs you made when building this editor? Are there any areas you would improve if you were to start over?
harizprogram 7 months ago prev next
I'm curious, how did you handle versioning with CRDTs? Is it possible to revert to a previous version of the document?
randomperson 7 months ago next
CRDTs are inherently append-only data structures, so reversion is possible by storing previous versions of the document. I recommend checking out this library: <https://github.com/OTLPack/OTL>
charlescodes 7 months ago prev next
Great job on this tutorial. I've been trying to get into the weeds of CRDTs for a while now and found this post to be very helpful.
bekki123 7 months ago prev next
I've never worked with CRDTs before, but this post has inspired me to give them a try. Do you recommend any good resources for getting started?
jilltech 7 months ago next
I recommend checking out these resources: <https://crdt.tech/> and <https://www.youtube.com/watch?v=H1O-5N2Pgd0>
samcodes 7 months ago prev next
I found this post to be a great introduction to CRDTs and their real-world applications. I'm looking forward to seeing more posts like this one!
alicecodes 7 months ago prev next
I'm surprised this post doesn't have more upvotes. It's a great tutorial and really helps clarify the concepts of CRDTs.
codinstyle 7 months ago prev next
I've been following this project for a while, and I think it's a great example of how CRDTs can be used to build real-world applications. Keep up the good work.
jonprogram 7 months ago prev next
CRDTs are still a relatively new technology, and it's great to see someone using them in a real-world application. This tutorial has been really helpful in understanding the concepts.
coderyth 7 months ago prev next
It's amazing how flexible CRDTs are. I've been experimenting with them for a few weeks now, and I'm blown away by how well they work in practice.
robertc0de 7 months ago prev next
CRDTs seem to be a great solution for building real-time collaborative applications. I'm looking forward to seeing more examples of their use in the near future.
codert 7 months ago prev next
This post has encouraged me to start experimenting with CRDTs. I've heard a lot about them, but never took the time to really dive into the subject.
supercoder 7 months ago prev next
Working on a project with CRDTs was a very rewarding experience. I'm glad this post is inspiring others to give it a try.
mastercoder 7 months ago prev next
CRDTs are a great technology for building collaborative applications. I recommend checking out this library for a good implementation: <https://github.com/dominictarr/crdt>
alpha1coder 7 months ago prev next
I had a lot of fun building this project with CRDTs, and I hope this post has inspired others to give it a try. Let me know if you have any questions!