はじめに 背景と課題 背景 イベントをトリガーとした非同期処理の基本的な構成 改善前のアーキテクチャ 顕在化した課題 改善の方針 アーキテクチャ 実装方式の選定 デキュー: ジョブの取得と実行 ジョブの設計 ジョブのライフサイクル 直列化キーによる順序保証 優先度による実行順の制御 リトライとクラッシュリカバリ デキュークエリ Workerの並行実行 エンキュー: イベントの検知とジョブの生成 ポーリング方式の課題 WALを利用したエンキュー 実装 結果 まとめ はじめに こんにちは、enechainでエンジニアをしている青戸です。 本記事では、イベント駆動な非同期処理のスループットをPostgreSQLのみで改善した事例を紹介します。外部のメッセージブローカーなどを追加せず、PostgreSQLの機能を使ってシンプルな構成のまま性能を向上させられたので、同じような課題に取り組む方の参考に

