Archive for August, 2017

CAP theorem/Realtime Distributed Text Editor at JUG UA (August 31)

August 24th, 2017 1 comment

We are happy to announce our next JUG UA meetup.

Date: August 31, 19:00 – 22:30 (registration from 18:30)
Venue: Wix office, Pankivska 14A St, 4th Floor, Kyiv



  • The 4 stages of CAP theorem – Denial, Hacking, Anger, and Acceptance (Maxim Ribakov @ Wix)
In the world of multi clustered architecture, just like in life, you can’t have it all. This is what CAP theorem teaches us.
So you start off by denying, thinking that you can have it all, then try to hack it, which leads to anger, anger leads to fear, fear leads to.. no wait. Acceptance.
In this talk we will examine various architectural solutions for services of different SLAs with an emphasis on MVP.
  •  Grammarly Docs – Architecting a Realtime Distributed Text Editor (Dmitry Tiagulskyi and Kyrylo Holodnov @ Grammarly)

We will discuss the challenges of building a distributed document 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 do you 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 are important.
– Use cases for Apache ZooKeeper, AWS S3 and DynamoDB. Tips and best practices for using them in your project

Tags: ,