生成AI
ON CONFLICT DO NOTHINGの排他制御は「一度きり」にしか効かない: TTL付きUPSERTで直す

`INSERT ... ON CONFLICT DO NOTHING` による排他制御は、TTL付きキャッシュと組み合わせると「一度きりのイベント」にしか効かず、キャッシュ切れ後の再実行で永遠に失敗し続ける落とし穴がある。この記事では、実運用で踏んだその問題と、TTLを条件にした条件付きUPSERTによる解決策をコード例とともに解説します。

続きを読む
生成AI
非同期ワーカーからの完了通知を、エージェント前提で安全に受け取る設計

非同期ワーカーからの完了通知をエージェント前提で安全に受け取る設計判断をまとめました。HMAC署名ではなく固定Bearerトークンを選んだ理由、新しいテーブルやロック機構を追加せず既存資産(バリデータ・カラム)を再利用した判断を、実装コードとともに解説します。

続きを読む
データベース
Supabase Data API の自動公開が廃止——既存プロジェクトを明示的 GRANT に移行する全手順

2026年5月30日から新規プロジェクト、10月30日から既存プロジェクトで適用される Supabase Data API の Breaking Change を解説。暗黙の全公開から明示的 GRANT への移行手順を、実プロジェクトの before/after 付きで紹介します。

続きを読む
データベース
SQLite/Cloudflare D1 で boolean カラムを設計するときの定石

SQLiteにはBOOLEAN型がありません。INTEGER + NOT NULL + DEFAULT + CHECK制約を組み合わせた4要素の定石と、TypeScriptでの0/1↔boolean変換の実装例を解説します。

続きを読む