DEV Community 日本語
フォロー
soroiでバブルティーダッシュボードを同期させる
複数のペインを持つインシデントコンソールは、データ管理において課題を提示します。Go言語のsoroiライブラリは、型付けされたクエリクライアントを提供することで、これらの課題に対処します。これにより、複数のコンポーネントが同じリモートデータを読み取ることができ、データの整合性と効率的なキャッシングを保証します。インシデントリスト、詳細、サマリーなどの各ペインは、単一のsoroiクライアントを使用して同じ共有データにサブスクライブできます。このクライアントは、重複するデータロードを管理し、最新の結果を再利用して冗長なリクエストを回避します。データはキャッシュ内で読み取り専用に保たれ、書き込みはサービスを通じてルーティングされます。ブリッジがsoroiのクエリサブスクリプションをBubble Teaに接続し、メッセージを介したUIの更新を可能にします。各ペインはスナップショット更新を受け取り、UIが最新のクエリ状態を反映することを保証します。このアプローチにより、バックグラウンドのゴルーチンからの直接的なモデル操作を防ぎます。システムは、最後の既知のデータとエラーメッセージを表示することで、リフレッシュの失敗を適切に処理します。初期ロードの失敗と後続のリフレッシュの失敗を区別します。インシデントの確認は非同期コマンドとして処理され、UIのフリーズを防ぎます。確認が成功すると、共有キューが無効化され、すべてのアクティブなオブザーバーのリフレッシュがトリガーされます。ペインはリフレッシュ中に古いデータを表示し、その後新しいオーナーで更新されます。インシデントの選択はIDベースで行われ、キューの並べ替え後に誤った確認を防ぎます。リソースのクリーンアップは重要であり、クライアントとクエリハンドルはターミナル終了時に解放されます。このパターンは、コンポーネントが独立したライフタイムを持つ共有リモートデータを読み取るターミナルツールに最適です。