ON CONFLICT DO NOTHINGの排他制御は「一度きり」にしか効かない: TTL付きUPSERTで直す
`INSERT ... ON CONFLICT DO NOTHING` による排他制御は、TTL付きキャッシュと組み合わせると「一度きりのイベント」にしか効かず、キャッシュ切れ後の再実行で永遠に失敗し続ける落とし穴がある。この記事では、実運用で踏んだその問題と、TTLを条件にした条件付きUPSERTによる解決策をコード例とともに解説します。
エラーメッセージの文字列判定をやめて、AppErrorに一本化する
エラーメッセージの文言でHTTPステータスを判定する実装は壊れやすいです。code・status・userMessageを持つAppErrorへ一本化し、未分類の例外はfail closedで500に倒し、throw new ErrorをCIで検知する対策を紹介します。
『overlapping act() calls』から学ぶ、React Testing Library × fake timer × MSWの罠
React Testing Libraryのact/waitFor、fake timer、MSWを組み合わせた際に起きる4つの罠(overlapping act、timeout、プロバイダ分裂、型チェック漏れ)と解決策を整理します。
Playwrightでwebkitだけ落ちるE2Eを直す: cold-load nav-stallをin-contextで復帰させる
Playwrightのnightly E2Eでwebkitだけ失敗する「wedge」状態を、about:blank遷移で復帰させる方法と、flakyと実装バグを機械的に分類しCIノイズを減らす設計を解説します。
npm未publishの内部パッケージをvendoringで配る:取り込み元の追跡と改変検知を自動化する設計
npmにもGitHub Packagesにも公開しない方針の社内限定ライブラリを、複数のリポジトリが `vendor/` 配下に手でコピーして参照する構成は珍しくありません。ただし手コピーには弱点があります。どのコミットから持ってきたコードなのか、コピーしたあとに誰かが手を加えていないか、を追跡する手段がどこにもないのです。
本人アカウントと委任アカウントが同じ機能を触るとき、権限チェックをどう一本化するか
本人アカウントと権限レベル付き委任アカウントが同じ機能を操作するシステムで、権限チェックを承認処理と作成処理で再利用して一本化する設計パターンを解説します。
CLIの起動判定がCIでだけ失敗する謎—TTY検出で出力形式が変わる罠
CLIはTTY接続の有無で出力形式を変えることがあり、これがE2EテストのCI環境でのみ起動判定が失敗する原因に。この謎を解き明かし、起動待ち判定の切り分け方と、原因の見えにくい不具合を解決するアプローチを解説します。
CLIの「エラーは出ているはずなのに何も表示されない」を追ったら見えた4つの罠
社内向けのCLIツールで、「エラーは出ているはずなのに何も表示されず、終了コードだけがおかしい」という不具合を追いかけたことはないでしょうか。
JWTはデコードできても検証済みではない: サーバー間照会で認可を作り直した話
EdgeのミドルウェアでJWTをデコードしただけの値を認可判定に使っていませんか。デコードと検証済みの違いを踏まえ、サーバー間照会でユーザーIDを確定する設計に作り直した記録です。キャッシュTTLとfail-closedの勘所も解説します。
メッセージキューの疎通確認を「run-idトレーシング」で実現する
非同期処理ではHTTPレスポンスが正常でも、その先のキュー処理が詰まっていることがあります。リクエストに埋め込んだrun-idをDBで追跡する「run-idトレーシング」で、このキュー詰まりを検知する方法を解説します。










