トークンが切れても生き続けるWebSocketを、どう扱うか

101 レスポンスのあと、どのリクエストにも認証情報は載りません。サーバーが覚えているのは証拠ではなく判定結果だけです。1つのトークンをブラウザのハンドシェイクから追いかけ、ページから何が見えて何が見えないかを確かめたうえで、再接続・帯域内(in-band)・帯域外(out-of-band)の3つの更新方法を、動くサーバーとテストとヘッドレス Chrome の確認つきで比べます。

2026年8月21日 | 17 min

ポーリングを変更通知の購読に置き換え、保険として残す

メッセージ単位で課金されるリレー越しに、モバイルクライアントがタイマー駆動のポーリングから共有の変更通知へ移った経緯を扱います。難しいのはストリームそのものではなく、保険のポーリングをいつ止めてよいかを正直に決めることです。

2026年8月20日 | 10 min

従量課金のリレーでのバッチ送信とフレーム上限

WebSocket のメッセージごとに課金され、フレームにも上限がある環境では、独立したフラッシュ条件を持つバッチ送信、上限より低い単一フレームのしきい値、上限付きの分割、混在バージョンのロールアウトを生き延びる能力フラグが必要です。難所は、終了時の順序と、ワイヤ上から消えるゼロ値です。

2026年8月19日 | 11 min

pingなしの生存確認とアイドル時のスリープ

一定間隔の keepalive は、接続が忙しいときでも双方向に1メッセージずつ使います。受信したフレームをすべて生存の証拠として扱い、静かな接続だけを確認し、既存のハートビートで待機中のホストに切断してよいかを伝えれば、その大半を減らせます。代償は、上限のある復帰の遅延です。

2026年8月18日 | 9 min

close イベントが来ないとき

自分のソケットの close イベントを待ってから後始末するクライアントは、そのイベントが届かないと、黙って止まることがあります。接続を終えると決めた時点で状態を確定させ、後始末を冪等にし、イベントは自分が始めていない切断のために残します。

2026年8月17日 | 8 min

共同編集の実体と残す保存を分ける

共同編集の文書同期とスナップショット保存を分離し、初回同期前の空の文書による上書きを防ぐ設計を説明します。

2026年8月13日 | 10 min

開始の許可を未終了のあいだ一つにする

分散タスクの同時実行制御として、作業面ごとの開始許可・投入時の宛先固定・マシン停止時の冪等な再送を設計する方法を説明します。

2026年8月12日 | 11 min

認証としてよいことを分ける

API の認証とロールベース認可を、主体・経路ごとの権限・人とマシンの認証情報に分けて設計する方法を説明します。

2026年8月11日 | 13 min

過去をモデルの入力に全ては載せない

AI エージェントのメモリ設計として、検索した文脈とタスクの正本を分離し、検索インデックスの遅延を考慮して作成・更新を判断する方法を説明します。

2026年8月6日 | 10 min

発話の流れを作業にしない

会議 AI の処理を文字起こし・要約・タスク抽出に分け、発話の根拠を保持し、会議時刻から期限を解決する設計を説明します。

2026年8月4日 | 10 min