Google Docs یک واژه‌پرداز آنلاین است که به‌عنوان بخشی از مجموعه رایگان و مبتنی بر وب Google Docs Editors ارائه‌شده توسط Google است که شامل موارد زیر است: Google Sheets، Google Slides، Google Drawings، Google Forms، Google Sites و Google Keep. Google Docs از طریق مرورگر اینترنت به عنوان یک برنامه مبتنی بر وب قابل دسترسی است و همچنین به عنوان یک برنامه تلفن همراه در Android و iOS و به عنوان یک برنامه دسکتاپ در ChromeOS Google در دسترس است.

ارزش یک عکس بیشتر از هزار کلمه است. در این پست به نحوه طراحی Google Docs خواهیم پرداخت:

google docs system design

google docs system design

1- کلاینت ها عملیات ویرایش اسناد را به سرور WebSocket ارسال می کنند.

2- ارتباط بلادرنگ توسط سرور WebSocket انجام می شود.

3- عملیات اسناد در صف پیام ادامه دارد.

4- File Operation Server عملیات تولید شده توسط کلاینت ها را مصرف می کند و عملیات تبدیل شده را با استفاده از الگوریتم های همکاری تولید می کند.

5-  سه نوع داده ذخیره می شود: فراداده فایل، محتوای فایل و عملیات.

یکی از بزرگ‌ترین چالش‌ها حل تعارض در زمان واقعی است. الگوریتم های رایج عبارتند از:

🔹 Operational transformation (OT)

🔹 Differential Synchronization (DS)

🔹 Conflict-free replicated data type (CRDT)

 

Google Doc مطابق صفحه ویکی‌پدیا خود از OT استفاده می‌کند و CRDT یک منطقه فعال تحقیقاتی برای ویرایش همزمان بلادرنگ است.