ブログ

技術ノート

バックエンド設計・本番運用・応用AIについての記事 13 本

2つのOutbox、1つのパターン

コマンドにはCloud Tasks、イベントにはPub/Sub——同じTransactional Outbox、同じリレー、同じHTTP配送。本当の分岐点は中間層と、ルーティングを誰が所有するか。

読む

実行計画には現れないロック競合

最大1000並列のGoワーカーが、それぞれ自分のユーザーの行だけをMySQLにupsertしているのに、InnoDBはデッドロックを検出し続けた。ギャップロックの仕組み、修正案の比較、そしてあえて選んだ地味な解決策。

読む

ブロックされなかったプッシュパイプライン

スケジュールバッチジョブとしての通知キャンペーン:対象クエリに押し込まれた資格判定と重複排除、再開チェックポイントを兼ねる送信ログ、プラットフォームクォータへのスロットリング——そして今なら追加する2つのゲート。

読む

ログをAPIのように設計する

CloudWatch Logs Insightsでビジネスの問いに答える:ログ行の契約、新しい行を足すより既存の行を広げるべき理由、JSONエスケープの罠、そしてリテンションという一方通行のドア。

読む

UIがチャットスレッドであるプロダクトを作る

LIFFトークン検証、Flex Messageカルーセル、リッチメニュー、ルーティングとしてのチャットボットフロー——バックエンドの規律としてのチャットプラットフォームエンジニアリング。

読む

LINEミニアプリの中でMLレコメンドを届ける

LINEだけで完結する物件探しプラットフォームの裏側——Goバックエンド、LIFFミニアプリ、XGBoost推論サービス、そしてレコメンドを新鮮に保つバッチパイプライン。

読む

実際にリハーサルするマルチリージョンDR

東京プライマリ、大阪スタンバイ、Terraformモジュールは1セット:何をレプリケーションし、何をリハーサルするか。テストされていないフェイルオーバー計画が能力ではなく図である理由。

読む

Lambdaの中のヘキサゴナルアーキテクチャ(コード付き)

50個超のTypeScript Lambda関数がテスト可能で一貫性を保てた理由:10行のハンドラー、ポートとアダプター、そしてAPI・キュー・バッチの3つの入口に仕える1つのユースケース。

読む

本番のサーバーレス:エンタープライズAWSプラットフォームからの教訓

50個超のLambda関数、ヘキサゴナルアーキテクチャ、SQS駆動のバッチパイプライン、マルチリージョンDR——エンタープライズ級サーバーレスを支える構造・キュー設計・運用判断。

読む

goroutineが間違った道具になるとき

Goのコンテキストキャンセルに関する本番ポストモーテム:fire-and-forgetのキャッシュ書き込みがリクエストのcontextを継承し、リクエストと一緒に死んだ——診断、差し戻された最初の修正、そして退屈な最終修正。

読む

サービスメッシュなしのサービス間認証

Cloud Run上のサイドカープロキシパターン:イングレス認証、中央の内部APIハブ経由のエグレス、パスベースルーティングの内部ロードバランサー——メッシュの重さなしにメッシュの利益を。

読む

1つのインターフェース、4つの支払い方法

3DS付きカード、ウォレット、コンビニ払い、口座振替を単一の内部サービスの背後に——決済ゲートウェイの抽象化が、プロバイダーの癖を注文フローから締め出す方法。

読む

イベントを失わないイベント駆動マイクロサービス:Transactional Outbox の実践

Cloud Run と Spanner の上で、注文・決済・下流サービスの整合性をどう守ったか——Transactional Outbox パターンとタスクキューのリレーワーカー、そして今ならこう作るという反省。

読む