소로이(soroi)와 함께 버블티 대시보드를 동기화 유... 노트

소로이(soroi)와 함께 버블티 대시보드를 동기화 유지하기

여러 패널을 갖춘 인시던트 콘솔은 데이터 관리에서 어려움을 야기합니다. Go용 soroi 라이브러리는 타입화된 쿼리 클라이언트를 제공하여 이러한 문제를 해결합니다. 이를 통해 여러 컴포넌트가 동일한 원격 데이터를 읽을 수 있어 데이터 일관성과 효율적인 캐싱을 보장합니다.인시던트 목록, 상세 정보, 요약과 같은 각 패널은 단일 soroi 클라이언트를 사용하여 동일한 공유 데이터에 구독할 수 있습니다. 이 클라이언트는 중복되는 데이터 로드를 관리하고, 최신 결과를 재사용하며, 불필요한 요청을 방지합니다. 데이터는 캐시에서 읽기 전용으로 유지되며, 쓰기는 서비스를 통해 라우팅됩니다.브리지가 soroi의 쿼리 구독을 Bubble Tea에 연결하여 메시지를 통해 UI 업데이트를 가능하게 합니다. 각 패널은 스냅샷 업데이트를 받아 UI가 최신 쿼리 상태를 반영하도록 합니다. 이 접근 방식은 백그라운드 고루틴에서 모델을 직접 조작하는 것을 방지합니다.시스템은 새로고침 실패를 마지막으로 알려진 데이터와 오류 메시지를 표시하여 우아하게 처리합니다. 초기 로드 실패와 후속 새로고침 실패를 구분합니다. 인시던트 승인은 UI 멈춤을 방지하는 비동기 명령으로 처리됩니다.성공적인 승인 시 공유 큐가 무효화되어 모든 활성 관찰자에 대한 새로고침이 트리거됩니다. 패널은 새로고침 중에 최신이 아닌 데이터를 표시한 다음 새 소유자로 업데이트됩니다. 인시던트 선택은 ID 기반으로 이루어져 큐 재정렬 후 실수로 승인되는 것을 방지합니다.리소스 정리는 중요하며, 클라이언트와 쿼리 핸들은 터미널 종료 시 해제됩니다. 이 패턴은 컴포넌트가 독립적인 수명을 가진 공유 원격 데이터를 읽는 터미널 도구에 이상적입니다.