"live 가격은 거주자가 아니라 손님이야. 15분 받고, 그다음 durable close 가 의자를 되찾아."
Live 는 overlay 지 대체가 아냐
스트리밍이 켜지면 live tick 이 가장 현재 가격을 줘. 근데 Keep 은 그 live 값이 진실이 되게 절대 안 둬 — durable close 위에 칠해진 임시 overlay 고, 만료가 있어. LIVE_TTL_SECONDS — 15분 — 뒤 live tick 이 만료되고, '현재 값' 의 소유권이 저장된 completed close 로 돌아가. durable close 가 거주자; live tick 은 타이머 달린 손님이야.
왜 만료가 중요한가
만료가 없다고 상상해. Keep 을 열고, 스트리밍이 한동안 돌고, 그다음 노트북이 자거나, 네트워크가 끊기거나, 자리를 떠. 마지막 live tick 이 이제 화면에 얼어붙어 — 한 시간 전, 아니면 어제 가격이, fresh 한 것과 똑같이 권위 있어 보이며 앉아. 그 얼어붙은 tick 이 가장 위험한 종류의 stale 데이터야: live 로 보이는데 아냐. TTL 이 그 실패 모드를 죽여. 새 tick 없이 15분이 지나면, Keep 은 옛것을 그만 믿고 durable close 로 fallback 해, 적어도 그건 자기 날짜를 정직하게 지녀. 알려진 close 가 거짓말하는 tick 을 이겨.
명시적으로 만든 레이어링
어떤 종목이든 Keep 의 현재 값은 작은 스택이야: 바닥에 durable completed close(항상 존재, 항상 날짜 붙음), 그 위에 fresh 한 동안에만 칠해진 live tick. 읽기는 top-down 으로 resolve 하되 TTL 을 존중해 — 창 안의 live tick 이 이기고; 만료된 건 존재한 적 없는 것처럼 무시돼. 이게 'pause' 를 안전하게 해(다음 레슨): pause 는 새 tick 을 멈출 뿐, 기존 overlay 는 스스로 나이 들어 나가고, 정직한 durable close 를 책임지게 남겨.