We will discuss the challenges of building a distributed documents editor at a global scale. Some of the things covered:
– Approaches for making group editors. Operational transformation algorithms with conflicts resolution.
– The challenges of distributed data applications – consistency and durability requirements.
– Overview of architectures that we investigated: atomic group broadcast, master-slave replication, distributed caches – Erlang Mnesia, Infinispan. How to choose the right one?
– A scalable and reliable system with Java, Nginx-Clojure, Apache ZooKeeper, AWS S3 and DynamoDB. Lessons learned after a year in production.
After this talk you will know:
– How real-world group editors work.
– Why service discovery and dynamic configuration is important.
– Use-cases for Apache ZooKeeper, AWS S3 and DynamoDB. Tips and best practices for using them in your project.