はじめに 皆さんはGoogleドキュメントやHackMDを使ったことはあるでしょうか。これらのツールは「ネット越しに同時に複数の人で1つのドキュメントを編集できる」という特徴を持っています。お互いの編集がリアルタイムに反映されるので、相手が何を書くのかを意識することなく、簡単にドキュメントを複数人で編集することができます。これを実現するためには、同時編集に参加しているユーザ全員の編集内容がネットワークの延滞に影響されることなく、それぞれの編集内容をうまい具合にマージして反映してくれるような賢いアルゴリズムが必要になります。今回はこのアルゴリズムに関して書きます。 編集内容のマージとは 編集内容をうまい具合にマージしなければいけないケースを考えてみます。 AさんとBさんが次のドキュメントを同時編集するとします。最初は、お互いブラウザ上では次のように見えています。当然、この状態ではお互いに見え
![DocBaseの同時編集機能を実現しているアルゴリズム – KRAY Inc.](https://cdn-ak-scissors.b.st-hatena.com/image/square/ff54e2e86405b3c52d025923ae0607cbb0526d89/height=288;version=1;width=512/https%3A%2F%2Fkray.jp%2Fwp%2Fwp-content%2Fuploads%2F2017%2F11%2Fab024fd8-b29c-48d8-9980-ee1efacf6b34.png)