디스크에서 복원된 "checking..." 상태는 거짓이므로, 여섯 개의 스토어 중 하나에 파일이 없습니다.
Notifio는 임대 검색 페이지를 모니터링하고 새로운 리스팅에 대해 사용자에게 알림을 제공하도록 설계된 데스크톱 애플리케이션입니다. 이 애플리케이션은 6가지 고유한 애플리케이션 상태를 관리하며, 각 상태는 고유한 수명 주기 규칙을 가지고 있습니다. 이러한 규칙은 각 상태가 무엇을 나타내는가라는 근본적인 질문에서 파생됩니다.검색, 이메일, 라이선스와 같은 구성 설정은 config.json에 저장되며 모든 작업에 걸쳐 유지됩니다. 검색 페이지의 기준선은 디스크에 저장되지만 애플리케이션이 다시 시작된 후에는 신뢰되지 않으며 다음 확인 시 다시 평가됩니다. 최근 찾은 항목은 finds.json에 저장되며 애플리케이션 다시 시작 및 검색 재지정을 견딜 수 있도록 설계되어 중요한 기록으로 작용합니다.답변 원장(reply ledger)은 ledger/replies.ndjson에 저장되며, 충돌 후 데이터 무결성을 보장하기 위해 추가 전용(append-only)으로 관리되며, 압축(compaction)을 통해 크기를 관리합니다. 업그레이드 권한(upgrade entitlement)은 entitlement.json에 저장되며 유효성을 나타내는 최신 상태 아님(staleness) 플래그를 포함합니다. 검색 실행당 실시간 상태(live per search run state)는 현재 확인 및 상태를 추적하며, 최신이 아닌 정보를 제시하는 것을 방지하기 위해 의도적으로 메모리에만 유지됩니다.이 메모리 내 상태는 중요합니다. 충돌 후 이를 영구 저장하면 애플리케이션의 현재 활동을 잘못 나타낼 수 있습니다. 중지 버튼은 설명된 실행이 완료되었기 때문에 이 실시간 상태를 지웁니다. 이 실시간 상태의 변경 사항은 렌더러를 압도하지 않도록 방출되기 전에 통합(coalesced)됩니다.각 검색의 페이지 기준선은 목록에서의 위치가 아닌 URL의 해시로 식별되어 목록 편집과 관련된 버그를 방지합니다. 기준선의 최신성은 파일의 수정 타임스탬프로 결정되어 별도의 lastCheckedAt 필드의 필요성을 없앱니다. 찾은 항목과 답변 원장은 관련 없는 작업으로 삭제되어서는 안 되는 기록입니다.찾은 항목 기록은 검색 재지정 시 귀중한 기록 데이터가 삭제되는 것을 방지하기 위해 검색별 스냅샷과 별도로 유지됩니다. 답변 원장의 추가 전용 방식과 압축은 충돌 안전성을 제공하고 메시지 추적을 관리합니다. 마지막으로, 각 상태의 수명 주기는 사용자 의도, 발생한 이벤트, 외부 세계 정보 또는 일시적인 실시간 데이터와 같은 근본적인 목적에 의해 결정됩니다.