최종 일관성에서는 쓰기를 받은 노드의 값이 다른 복제본에 즉시 보이지 않을 수 있습니다. 전파가 계속되면 새 쓰기가 없는 구간에서 복제본들이 같은 값에 도달합니다.
데모는 왼쪽 복제본의 값이 먼저 바뀌고 화살표가 이동한 뒤 오른쪽이 따라오는 모습을 보여줍니다. 사용자가 자신의 쓰기를 바로 읽어야 한다면 별도 읽기 보장이 필요합니다.
언제 쓰나
짧은 불일치를 허용하고 가용성·지역별 읽기 성능이 중요한 데이터에 고려합니다.
복제본 값이 잠시 달라도 업데이트 전파 후 같아지는 모델입니다.
<div class="scene"><div class="title">REPLICA PROPAGATION</div><div class="row replicas"><div class="tile">PRIMARY<br><b id="left">v1</b></div><div class="link"><span id="signal">→</span><small id="lagState">syncing</small></div><div class="tile">REPLICA<br><b id="right">v1</b></div></div><div id="consistency" class="muted">Both replicas agree</div></div>.scene{width:min(94vw,760px);height:min(86vh,320px);padding:clamp(10px,2.5vmin,18px);border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--fg);font:500 clamp(11px,1.3vw,16px)/1.25 "Pretendard Variable",Pretendard,-apple-system,sans-serif;display:flex;flex-direction:column;gap:clamp(7px,1.6vmin,12px);overflow:hidden}.scene *{box-sizing:border-box}.title{font-weight:750;color:var(--accent)}.muted{color:var(--muted)}.mono{font-family:ui-monospace,monospace}.row{display:flex;align-items:center;justify-content:center;gap:clamp(5px,1.4vmin,12px);flex:1;min-height:0}.tile{border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:clamp(6px,1.6vmin,12px);text-align:center;min-width:0}.on{border-color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 12%,var(--surface))!important}.pulse{animation:pulse 1.6s infinite alternate}@keyframes pulse{to{border-color:var(--accent);transform:translateY(-3px)}}.replicas .tile{flex:1}.replicas b{font:700 1.6em ui-monospace,monospace;color:var(--accent)}.link{min-width:22%;display:grid;text-align:center;color:var(--accent)}.link span{font-size:1.7em;animation:signal 1s infinite alternate}@keyframes signal{to{transform:translateX(16px)}}.link small{font-size:1em;color:var(--muted)}let version=1,phase=0;function tick(){if(phase===0){version++;document.getElementById('left').textContent='v'+version;document.getElementById('consistency').textContent='Replica is temporarily stale';document.getElementById('lagState').textContent='in flight'}else{document.getElementById('right').textContent='v'+version;document.getElementById('consistency').textContent='Replicas converged';document.getElementById('lagState').textContent='synced'}phase=1-phase}tick();setInterval(tick,1100)최종 일관성에서는 쓰기를 받은 노드의 값이 다른 복제본에 즉시 보이지 않을 수 있습니다. 전파가 계속되면 새 쓰기가 없는 구간에서 복제본들이 같은 값에 도달합니다.
데모는 왼쪽 복제본의 값이 먼저 바뀌고 화살표가 이동한 뒤 오른쪽이 따라오는 모습을 보여줍니다. 사용자가 자신의 쓰기를 바로 읽어야 한다면 별도 읽기 보장이 필요합니다.
짧은 불일치를 허용하고 가용성·지역별 읽기 성능이 중요한 데이터에 고려합니다.