Programming tutorial - IT technology blog

GoのSingleflightを極める:キャッシュスタンピードを防ぎ、アップストリームサービスを保護する

トラフィック急増時にホットなキャッシュキーが期限切れを迎えると、大量の同一クエリによってデータベースが過負荷に陥ることがあります。Goのsingleflightパッケージを使って並行リクエストを重複排除し、最小限のオーバーヘッドでインフラを保護する方法を解説します。
Programming tutorial - IT technology blog

Node.jsにおけるイベントソーシングとCQRSの実装:耐障害性に優れたプロジェクションと状態管理

従来のCRUDアプリケーションは、SQLのUPDATE操作のたびに履歴を上書きしてしまいます。本書では、楽観的並行性制御、集約の再構築(Rehydration)、耐障害性に優れたリードプロジェクションを備えたEvent SourcingとCQRSをNode.jsで実装する方法を解説します。
Programming tutorial - IT technology blog

GoにおけるgRPC実践入門:Protocol Buffers、ストリーミング、インターセプターで実現する高性能マイクロサービス

GoマイクロサービスをHTTP/1.1 JSONからgRPCへと移行した実践的知見。Protocol Buffers、HTTP/2の多重化、ストリーミング、インターセプターを駆使して、本番環境で発生した深刻なレイテンシ危機をどのように解決したかを詳しく解説します。
Programming tutorial - IT technology blog

BullMQ、Redis、TypeScriptを用いた分散タスクキューの構築

高負荷な処理を効率的にオフロードするには、耐障害性に優れたキューイングアーキテクチャが不可欠です。本ガイドでは、BullMQ、Redis、TypeScriptを活用し、指数バックオフによるリトライやデッドレターキューを備えた本番仕様の分散タスクキューを構築する手順を解説します。
Database tutorial - IT technology blog

PythonとTenacityでデータベースサーキットブレーカーを構築する:自動リトライ、スマートバックオフ、自己回復接続

リトライストーム——リトライロジックがすでに苦しんでいるデータベースを溢れさせる現象——はカスケード障害の最もよくある原因の一つだ。このガイドでは、Tenacityを使ってPythonでデータベースサーキットブレーカーを構築する方法を紹介する:自動バックオフ、3つの状態を持つサーキット(クローズ/オープン/ハーフオープン)、そしてデータベースが回復したら接続を復元するバックグラウンドヘルスチェック。