ããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ã«ããããªã¢ã«ã¿ã€ã å ±åç·šéã®ããã®ãªãã¬ãŒã·ã§ãã«ãã©ã³ã¹ãã©ãŒã ïŒOTïŒã®è€éããæ¢æ±ããŸããOTã¢ã«ãŽãªãºã ãã·ãŒã ã¬ã¹ã§ç«¶åã®ãªãå ±åããã¹ãç·šéãã©ã®ããã«å®çŸããããçè§£ããŸãããã
ããã³ããšã³ãã®ãªã¢ã«ã¿ã€ã ãªãã¬ãŒã·ã§ãã«ãã©ã³ã¹ãã©ãŒã ïŒå ±åç·šéã¢ã«ãŽãªãºã ã®æ·±æã
仿¥ã®çžäºæ¥ç¶ãããäžçã«ãããŠããªã¢ã«ã¿ã€ã ã³ã©ãã¬ãŒã·ã§ã³ã¯ãã¯ãèŽ æ²¢åã§ã¯ãªããå¿ éåã§ããGoogleããã¥ã¡ã³ãã§ã®å ±åææžç·šéããFigmaã§ã®ã€ã³ã¿ã©ã¯ãã£ããªãã¶ã€ã³ã»ãã·ã§ã³ãŸã§ãè€æ°ã®ãŠãŒã¶ãŒãåãããã¥ã¡ã³ãã§åæã«äœæ¥ã§ããèœåã¯æãéèŠã§ãããããã®äœéšãæ¯ããŠããã®ãããªãã¬ãŒã·ã§ãã«ãã©ã³ã¹ãã©ãŒã ïŒOTïŒãšããŠç¥ããããè€éãã€æŽç·Žãããã¢ã«ãŽãªãºã ã§ãã
ãªãã¬ãŒã·ã§ãã«ãã©ã³ã¹ãã©ãŒã ïŒOTïŒãšã¯ïŒ
ãªãã¬ãŒã·ã§ãã«ãã©ã³ã¹ãã©ãŒã ïŒOTïŒã¯ãè€æ°ã®ãŠãŒã¶ãŒãåæã«ç·šéããŠããå ±æããŒã¿æ§é ãç¹ã«ããã¹ãããŒã¹ã®ããã¥ã¡ã³ãã«ãããŠãäžè²«æ§ãšæŽåæ§ãç¶æããããã«èšèšãããã¢ã«ãŽãªãºã 矀ã§ããè€æ°ã®èè ãåæã«å°èª¬ãå ±åå·çããŠãããšæ³åããŠã¿ãŠãã ããã倿Žã調æŽããã¡ã«ããºã ããªããã°ãæ··ä¹±ãçããã§ããããOTã¯ãã®ã¡ã«ããºã ãæäŸããŸãã
äžå¿çãªèª²é¡ã¯ãæäœã®é坿æ§ã«ãããŸããã¢ãªã¹ãšãããšãã2人ã®ãŠãŒã¶ãŒããæåã«ãcatããšããåèªãå«ãããã¥ã¡ã³ããç·šéããŠãããšããŸãã
- ã¢ãªã¹ã¯ãcatãã®åã«ãquick ããæ¿å ¥ãããquick catãã«ããŸãã
- ããã¯ãcatãã®åã«ãfat ããæ¿å ¥ãããfat catãã«ããŸãã
ããäž¡æ¹ã®æäœãäœã®èª¿æŽããªãã«åã«é 次é©çšããããšãçµæã¯ã©ã¡ãã®æäœãå ã«é©çšããããã«äŸåããŸããã¢ãªã¹ã®æäœãå ã«é©çšãããæ¬¡ã«ããã®æäœãé©çšããããšãçµæã¯ãfat quick catããšãªããããã¯ããããæ£ãããããŸãããOTã¯ãä»ã®æäœã®å±¥æŽã«åºã¥ããŠæäœã倿ããããšã§ããã®åé¡ã解決ããŸãã
OTã®åºæ¬åå
OTã¯ãåæå®è¡ãããæäœã«åºã¥ããŠæäœã倿ãããšããååã§åäœããŸãã以äžã«ç°¡ç¥åããå èš³ã瀺ããŸãã
- æäœïŒOperationsïŒïŒ ãŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ïŒããã¹ãã®æ¿å ¥ãåé€ã眮æãªã©ïŒã¯ãæäœãšããŠè¡šçŸãããŸãã
- 倿颿°ïŒTransformation FunctionsïŒïŒ OTã®æ žå¿ã¯å€æé¢æ°ã«ãããããã¯2ã€ã®åæå®è¡æäœãå ¥åãšããŠåãåããäžè²«æ§ã確ä¿ããããã«ãããã調æŽããŸãã`transform(op1, op2)`颿°ã¯`op2`ã®åœ±é¿ãèæ ®ããŠ`op1`ã調æŽãã`transform(op2, op1)`ã¯`op1`ã®åœ±é¿ãèæ ®ããŠ`op2`ã調æŽããŸãã
- éäžåãŸãã¯åæ£åã¢ãŒããã¯ãã£ïŒ OTã¯ãéäžåãµãŒããŒãŸãã¯åæ£åãã¢ããŒãã¢ã¢ãŒããã¯ãã£ã䜿çšããŠå®è£ ã§ããŸããéäžåã¢ãŒããã¯ãã£ã¯ç®¡çã容æã§ãããé å»¶ãåäžé害ç¹ãçãå¯èœæ§ããããŸãã忣åã¢ãŒããã¯ãã£ã¯ã¹ã±ãŒã©ããªãã£ãšå埩åã«åªããŠããŸãããå®è£ ã¯ããè€éã§ãã
- æäœå±¥æŽïŒ åŸç¶ã®æäœã倿ããããã®ã³ã³ããã¹ããæäŸããããã«ããã¹ãŠã®æäœã®ãã°ãç¶æãããŸãã
ç°¡ç¥åãããäŸ
ã¢ãªã¹ãšããã®äŸãããäžåºŠèŠãŠã¿ãŸããããOTã䜿çšãããšãããã®æäœãã¢ãªã¹ã®ãã·ã³ã«å°éãããšããããã¯ã¢ãªã¹ã®æ¿å ¥ãèæ ®ããŠå€æãããŸãã倿颿°ã¯ããã®æäœã®æ¿å ¥ã€ã³ããã¯ã¹ã調æŽããã¢ãªã¹ã®ãquick ããé©çšãããåŸã®æ£ããäœçœ®ã«ãfat ããæ¿å ¥ãããããããŸãããåæ§ã«ãã¢ãªã¹ã®æäœãããã®ãã·ã³ã§å€æãããŸãã
ãªãã¬ãŒã·ã§ãã«ãã©ã³ã¹ãã©ãŒã ã¢ã«ãŽãªãºã ã®çš®é¡
OTã¢ã«ãŽãªãºã ã«ã¯ããã€ãã®ããªãšãŒã·ã§ã³ãååšããããããè€éããããã©ãŒãã³ã¹ãé©çšå¯èœæ§ã®ç¹ã§ãã¬ãŒããªãããããŸããæãäžè¬çãªãã®ã«ã¯ä»¥äžãå«ãŸããŸãã
- OT Type IïŒ OTã®æãåæãã€æãåçŽãªåœ¢åŒã®1ã€ã§ããå®è£ ã¯æ¯èŒçç°¡åã§ãããè€éãªã·ããªãªã®åŠçã§ã¯å¹çãå£ãããšããããŸãã
- OT Type IIïŒ Type Iã®æ¹è¯çã§ãããè¯ãããã©ãŒãã³ã¹ãšããè€éãªã·ããªãªã®åŠçãæäŸããŸãã
- JupiterïŒ å¹ åºãæäœãšããŒã¿æ§é ãåŠçããããã«èšèšããããããé«åºŠãªOTã¢ã«ãŽãªãºã ã§ãã
- ShareDBïŒæ§ot.jsïŒïŒ å ç¢ã§ååã«ãã¹ããããOTã®å®è£ ãæäŸãã人æ°ã®ãªãŒãã³ãœãŒã¹ã©ã€ãã©ãªã§ãæ¬çªç°å¢ã«é©ããŠããŸãã
ããã³ããšã³ãå®è£ ã«é¢ããèæ ®äºé
ããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ã«OTãå®è£ ããã«ã¯ãããã€ãã®ç¹æã®èª²é¡ããããŸãã
ãããã¯ãŒã¯é å»¶
ãããã¯ãŒã¯é å»¶ã¯ããªã¢ã«ã¿ã€ã å ±åç·šéã«ãããéå€§ãªæžå¿µäºé ã§ããå¿çæ§ã®é«ããŠãŒã¶ãŒäœéšãç¶æããããã«ã¯ãæäœãè¿ éã«éä¿¡ããé©çšããå¿ èŠããããŸãã以äžã®ãããªæè¡ã圹ç«ã¡ãŸãã
- ã¯ã©ã€ã¢ã³ããµã€ãäºæž¬ïŒ ãŠãŒã¶ãŒã®æäœãããµãŒããŒã«ãã£ãŠç¢ºèªãããåã«ãããŒã«ã«ã®ããã¥ã¡ã³ãã³ããŒã«å³åº§ã«é©çšããŸãã
- 楜芳çåæå®è¡å¶åŸ¡ïŒ ç«¶åã¯çšã§ãããšä»®å®ããçºçãããšãã«è§£æ±ºããŸãã
- å§çž®ïŒ éä¿¡æéãæå°éã«æããããã«ãæäœãã€ããŒãã®ãµã€ãºãåæžããŸãã
ãããã®æè¡ã¯ãé å»¶ã®åœ±é¿ã軜æžããã®ã«åœ¹ç«ã¡ãŸãã
ç«¶å解決
OTã䜿çšããŠããç¹ã«åæ£ã·ã¹ãã ã§ã¯ç«¶åãçºçããå¯èœæ§ããããŸããå ç¢ãªç«¶å解決æŠç¥ãäžå¯æ¬ ã§ããäžè¬çãªææ³ã«ã¯ä»¥äžãå«ãŸããŸãã
- æçµæžã蟌ã¿åªå ïŒLast Write WinsïŒïŒ ææ°ã®æäœãé©çšããã以åã®æäœãç Žæ£ãããå¯èœæ§ããããŸããããã¯åçŽãªã¢ãããŒãã§ãããããŒã¿æå€±ã«ã€ãªããå¯èœæ§ããããŸãã
- ç«¶åããŒã«ãŒïŒ ããã¥ã¡ã³ãå ã®ç«¶åé åã匷調衚瀺ãããŠãŒã¶ãŒãæåã§è§£æ±ºã§ããããã«ããŸãã
- é«åºŠãªããŒãžã¢ã«ãŽãªãºã ïŒ ã¢ã«ãŽãªãºã ã䜿çšããŠãæå³çã«æçŸ©ã®ããæ¹æ³ã§ç«¶åãã倿Žãèªåçã«ããŒãžããŸããããã¯è€éã§ãããå€ãã®å Žåãæé«ã®ãŠãŒã¶ãŒäœéšã«ã€ãªãããŸãã
ããŒã¿ã®ã·ãªã¢ã©ã€ãºãšéä¿¡
å¹ççãªããŒã¿ã®ã·ãªã¢ã©ã€ãºãšéä¿¡ã¯ãããã©ãŒãã³ã¹ã«ãšã£ãŠæ¥µããŠéèŠã§ããJSONãProtocol Buffersã®ãããªè»œéãªããŒã¿åœ¢åŒããWebSocketã®ãããªå¹ççãªãã©ã³ã¹ããŒããããã³ã«ã®äœ¿çšãæ€èšããŠãã ããã
ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã«é¢ããèæ ®äºé
ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã¯ãããã¥ã¡ã³ãã®ç¶æ ãä»ã®å ±åäœæ¥è ã®ã¢ã¯ã·ã§ã³ã«ã€ããŠããŠãŒã¶ãŒã«æç¢ºãªãã£ãŒãããã¯ãæäŸããå¿ èŠããããŸããããã«ã¯ä»¥äžãå«ãŸããŸãã
- ã«ãŒãœã«è¿œè·¡ïŒ ä»ã®ãŠãŒã¶ãŒã®ã«ãŒãœã«ããªã¢ã«ã¿ã€ã ã§è¡šç€ºããŸãã
- ãã¬ãŒã³ã¹ã€ã³ãžã±ãŒã¿ãŒïŒ çŸåšã©ã®ãŠãŒã¶ãŒãããã¥ã¡ã³ãã§ã¢ã¯ãã£ããã衚瀺ããŸãã
- 倿Žã®ãã€ã©ã€ãïŒ ä»ã®ãŠãŒã¶ãŒã«ãã£ãŠæè¿è¡ããã倿Žã匷調衚瀺ããŸãã
é©åãªOTã©ã€ãã©ãªãŸãã¯ãã¬ãŒã ã¯ãŒã¯ã®éžæ
OTããŒãããå®è£ ããã®ã¯è€éãªäœæ¥ã«ãªãå¯èœæ§ããããŸãã幞ããªããšã«ãããã»ã¹ãç°¡çŽ åã§ããåªããã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãããã€ããããŸãã
ShareDB
ShareDBã¯ãå ç¢ã§ååã«ãã¹ããããOTã®å®è£ ãæäŸãã人æ°ã®ãªãŒãã³ãœãŒã¹ã©ã€ãã©ãªã§ããããã¹ããJSONããªããããã¹ããªã©ãããŸããŸãªããŒã¿åããµããŒãããŠããŸããShareDBã¯åªããããã¥ã¡ã³ããšæŽ»çºãªã³ãã¥ããã£ãæäŸããŠããŸãã
Automerge
Automergeã¯ãå ±åç·šéã«å¯Ÿãã代æ¿ã¢ãããŒããæäŸãã匷åãªCRDTïŒConflict-free Replicated Data TypeïŒã©ã€ãã©ãªã§ããCRDTã¯å€æé¢æ°ãå¿ èŠãšããã«çµææŽåæ§ãä¿èšŒãããããå Žåã«ãã£ãŠã¯å®è£ ã容æã«ãªããŸãããã ããCRDTã¯ãªãŒããŒãããã倧ãããªãå¯èœæ§ãããããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã«é©ããŠããããã§ã¯ãããŸããã
Yjs
Yjsã¯ãåªããããã©ãŒãã³ã¹ãšã¹ã±ãŒã©ããªãã£ãæäŸããå¥ã®CRDTããŒã¹ã®ãã¬ãŒã ã¯ãŒã¯ã§ããå¹ åºãããŒã¿åããµããŒãããæè»ãªAPIãæäŸããŸããYjsã¯ç¹ã«ãªãã©ã€ã³ãµããŒããå¿ èŠãšããã¢ããªã±ãŒã·ã§ã³ã«é©ããŠããŸãã
Etherpad
Etherpadã¯ããªãŒãã³ãœãŒã¹ã®ãŠã§ãããŒã¹ã®ãªã¢ã«ã¿ã€ã å ±åããã¹ããšãã£ã¿ã§ããåãªãã©ã€ãã©ãªã§ã¯ãªãå®å šãªã¢ããªã±ãŒã·ã§ã³ã§ãããåŠç¿ããããèªèº«ã®ç®çã®ããã«é©åããããããããšãã§ããOTããŒã¹ã·ã¹ãã ã®åäœäŸãæäŸããŸããEtherpadã®ã³ãŒãããŒã¹ã¯é·å¹Žã«ããã£ãŠåŸ¹åºçã«ãã¹ããããæŽç·ŽãããŠããŸããã
äžçäžã®äœ¿çšäºäŸ
OTããã³åæ§ã®å ±åç·šéæè¡ã¯ãäžçäžã®ããŸããŸãªã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããŠããŸãã
- æè²ïŒã°ããŒãã«ïŒïŒ ãªã³ã©ã€ã³åŠç¿ãã©ãããã©ãŒã ã§ã¯ãåŠçã課é¡ããããžã§ã¯ãã§å ±åäœæ¥ã§ããããã«ãå ±åææžç·šéããŒã«ãé »ç¹ã«äœ¿çšãããŸããäŸãã°ãå°ççã«ç°ãªãå Žæã«ããåŠçãç ç©¶è«æãå ±åå·çã§ããŸãã
- ãœãããŠã§ã¢éçºïŒã€ã³ããã¢ã¡ãªã«ããšãŒãããïŒïŒ å ±åã³ãŒãã£ã³ã°ãã©ãããã©ãŒã ã«ãããéçºè ã¯ãªã¢ã«ã¿ã€ã ã§åãã³ãŒãããŒã¹ã§å ±åäœæ¥ã§ããŸããVS Codeã®Live Shareããªã³ã©ã€ã³IDEã®ãããªããŒã«ã¯ãOTãŸãã¯åæ§ã®ã¢ã«ãŽãªãºã ã䜿çšããŠããŸãã
- ãã¶ã€ã³ïŒæ¥æ¬ãéåœããã€ãïŒïŒ FigmaãAdobe XDãªã©ã®å ±åãã¶ã€ã³ããŒã«ã«ããããã¶ã€ããŒã¯ç©ççãªå Žæã«é¢ä¿ãªãããªã¢ã«ã¿ã€ã ã§ããžã¥ã¢ã«ãã¶ã€ã³ãå ±åã§äœæ¥ã§ããŸãã
- ææžã³ã©ãã¬ãŒã·ã§ã³ïŒå šäžçïŒïŒ Googleããã¥ã¡ã³ããMicrosoft Office Onlineã¯ãOTãŸãã¯åæ§ã®ã¢ã«ãŽãªãºã ã«äŸåããŠãããåºã䜿çšãããŠããå ±åææžç·šéããŒã«ã®ä»£è¡šäŸã§ãã
- ã«ã¹ã¿ããŒãµãŒãã¹ïŒãã©ãžã«ãã¡ãã·ã³ãã¹ãã€ã³ïŒïŒ ã«ã¹ã¿ããŒãµãŒãã¹ã®ã·ããªãªã§ã¯ããªã¢ã«ã¿ã€ã å ±åããã¹ããšãã£ã¿ã䜿çšãããè€æ°ã®ãšãŒãžã§ã³ããåæã«åã顧客ãµããŒããã±ããã«åãçµãããšãã§ããããè¿ éã§å¹ççãªè§£æ±ºãä¿èšŒããŸãã
OTãå®è£ ããããã®ãã¹ããã©ã¯ãã£ã¹
- 培åºçãªãã¹ãïŒ OTã¢ã«ãŽãªãºã ã¯è€éã§ãããæ£ç¢ºæ§ãšå®å®æ§ã確ä¿ããããã«å³å¯ãªãã¹ããå¿ èŠã§ããåæç·šéããããã¯ãŒã¯é å»¶ããšã©ãŒæ¡ä»¶ãªã©ãããŸããŸãªã·ããªãªã§ãã¹ãããŠãã ããã
- ããã©ãŒãã³ã¹ã®æé©åïŒ OTå®è£ ã®ãããã¡ã€ãªã³ã°ãè¡ããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããããã«å¿ããŠæé©åããŠãã ããããã£ãã·ã³ã°ãå§çž®ãå¹ççãªããŒã¿æ§é ãªã©ã®æè¡ãæ€èšããŠãã ããã
- ã»ãã¥ãªãã£ã«é¢ããèæ ®äºé ïŒ äžæ£ãªã¢ã¯ã»ã¹ãããŒã¿ã®æ¹ãããé²ãããã«ãOTå®è£ ãä¿è·ããŠãã ããã転éäžããã³ä¿åäžã®ããŒã¿ãä¿è·ããããã«ãæå·åãšèªèšŒã䜿çšããŠãã ããããŸãããŠãŒã¶ãŒãç·šéãèš±å¯ãããããã¥ã¡ã³ãã«ã®ã¿ã¢ã¯ã»ã¹ã§ããããã«ãé©åãªèªå¯ãã§ãã¯ãå®è£ ããŠãã ããã
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒ ããã¥ã¡ã³ãã®ç¶æ ãä»ã®å ±åäœæ¥è ã®ã¢ã¯ã·ã§ã³ã«ã€ããŠããŠãŒã¶ãŒã«æç¢ºãªãã£ãŒãããã¯ãæäŸãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãèšèšããŠãã ãããé å»¶ãæå°éã«æããçŽæçãªç«¶å解決ã¡ã«ããºã ãæäŸããŠãã ããã
- æ éãªæäœèšèšïŒ ãæäœãã®å ·äœçãªãã©ãŒããããšæ§é ã¯éåžžã«éèŠã§ããããŒã¿ã¢ãã«ãšå®è¡ãããç·šéã®çš®é¡ã«åºã¥ããŠãããããæ éã«èšèšããŠãã ãããèšèšãäžååãªæäœã¯ãããã©ãŒãã³ã¹ã®ããã«ããã¯ãè€éãªå€æããžãã¯ã«ã€ãªããå¯èœæ§ããããŸãã
課é¡ãšå°æ¥ã®æ¹åæ§
ãã®æç床ã«ãããããããOTã¯ãŸã ããã€ãã®èª²é¡ãæç€ºããŠããŸãã
- è€éãïŒ OTã¢ã«ãŽãªãºã ã®å®è£ ãšç¶æã¯ãè€éã§æéããããããšããããŸãã
- ã¹ã±ãŒã©ããªãã£ïŒ 倿°ã®åæãŠãŒã¶ãŒãåŠçããããã«OTãã¹ã±ãŒãªã³ã°ããããšã¯å°é£ãªå ŽåããããŸãã
- ãªããããã¹ãã®ãµããŒãïŒ åŸæ¥åã®OTã¢ã«ãŽãªãºã ã§ã¯ããªããããã¹ããšãã£ã¿ã§ã®è€éãªæžåŒèšå®ãã¹ã¿ã€ãªã³ã°ã®ãµããŒããé£ããå ŽåããããŸãã
å°æ¥ã®ç ç©¶ã®æ¹åæ§ã«ã¯ä»¥äžãå«ãŸããŸãã
- ãã€ããªããã¢ãããŒãïŒ OTãšCRDTãçµã¿åãããŠãäž¡æ¹ã®ã¢ãããŒãã®å©ç¹ã掻çšããŸãã
- AIã«ããç«¶åè§£æ±ºïŒ äººå·¥ç¥èœã䜿çšããŠãæå³çã«æçŸ©ã®ããæ¹æ³ã§ç«¶åãèªåçã«è§£æ±ºããŸãã
- 忣åOTïŒ äžå€®ãµãŒããŒã®å¿ èŠæ§ãæé€ãã忣åOTã¢ãŒããã¯ãã£ãæ¢æ±ããŸãã
çµè«
ãªãã¬ãŒã·ã§ãã«ãã©ã³ã¹ãã©ãŒã ã¯ããªã¢ã«ã¿ã€ã å ±åç·šéãå¯èœã«ããããã®åŒ·åãã€äžå¯æ¬ ãªã¢ã«ãŽãªãºã ã§ããç¹å®ã®èª²é¡ã¯ãããŸããããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãšçç£æ§ã®é¢ã§æäŸããå©ç¹ã¯åŠå®ã§ããŸãããOTã®ååãçè§£ããå®è£ ã®è©³çŽ°ãæ éã«æ€èšããæ¢åã®ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ã掻çšããããšã§ãéçºè ã¯ãŠãŒã¶ãŒãå Žæã«é¢ä¿ãªãã·ãŒã ã¬ã¹ã«ååã§ããäžçã¯ã©ã¹ã®å ±åã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãã
仿¥ã®ããžã¿ã«ç°å¢ã§ã³ã©ãã¬ãŒã·ã§ã³ããŸããŸãéèŠã«ãªãã«ã€ããŠãOTããã³é¢é£æè¡ãç¿åŸããããšã¯ãã©ã®ããã³ããšã³ãéçºè ã«ãšã£ãŠãéèŠãªã¹ãã«ãšãªãã§ãããã
ãããªãåŠç¿ã®ããã«
- The Operational Transformation WebsiteïŒOTæ å ±ã«é¢ããå æ¬çãªãªãœãŒã¹ã
- ShareDB ããã¥ã¡ã³ãïŒShareDBãšãã®OTå®è£ ã«ã€ããŠããã«åŠã³ãŸãã
- Automerge ããã¥ã¡ã³ãïŒAutomergeãšCRDTããŒã¹ã®å ±åç·šéãæ¢æ±ããŸãã
- Yjs ããã¥ã¡ã³ãïŒYjsãšãã®æ©èœãçºèŠããŸãã
- Wikipedia: ãªãã¬ãŒã·ã§ãã«ãã©ã³ã¹ãã©ãŒã¡ãŒã·ã§ã³ïŒOTã®é«ã¬ãã«ã®æŠèŠã