"로깅엔 진짜 에디터가 필요해. Waystone은 하나 있어. 그냥 다른 repo에 살 뿐이고, 그걸로 됐어."
두 번째 에디터의 유혹
여행 로깅은 쓰기를 뜻하고, 쓰기는 에디터를 뜻해. 뻔한 수는 하나 짓는 거야. Waystone에 괜찮은 markdown 박스, autosave, 약간의 포맷팅. 그리고 그게 정확히 도메인 엔진이 형제의 더 나쁜 사본으로 흘러가기 시작하는 방식이야. 성숙한 에디터는 텍스트 박스가 아냐. autosave, 문서 history, 첨부, undo, 입력기 처리, 그리고 누가 이미 제대로 해놓은 백 가지 디테일이야. Waystone은 두 번째를 짓길 거부해. 산문은 가족의 글쓰기 에디터 Rekindle 거고, Waystone은 거기로 왕복해.
소유 분리가 엄격해
선이 정확히 그어져. Waystone이 날짜·장소·itinerary·route·예약·상태·결정·구조화된 여행 fact에 canonical. Rekindle이 산문 본문이랑 글쓰기 history에 canonical. 일일 로그를 Rekindle로 보내서 제대로 쓰고, 최신 revision을 pull해서 Waystone projection을 갱신해. 경계를 넘는 건 에디터 사본이 아냐. 링크야. 문서의 안정된 ID, kind, revision, content hash, 마지막 sync 시간. 파일명이랑 title은 mutable 표현이고, 안정된 ID가 정체성을 실어.
왕복은 divergence를 감지해야 해
어떤 두-시스템 왕복이든 위험한 부분은 양쪽이 다 바뀐 순간이야. 순진한 답인 last write wins는 누군가의 작업을 조용히 파괴해. Waystone의 규칙은 왕복 sync가 갈라진 편집을 조용히 resolve하는 대신 감지해야 한다는 거야. '이 두 버전이 안 맞아, 어느 걸 원해?'를 드러내는 게 조용히 하나 골라 다른 하나를 잃는 것보다 나아. 패턴을 봐. plan이랑 breadcrumb이랑 baseline을 다스리는 그 덮기-거부가 형제 경계에서 또 나타나. 조용한 last-write-wins는 회고적 rewrite의 cross-repo 버전이야.