エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください
Twitterで共有ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
外部DBとの整合性を守るためのトレードオフ:技術的に「正しい」解決策が、必ずしもビジネス的に「最適... 外部DBとの整合性を守るためのトレードオフ:技術的に「正しい」解決策が、必ずしもビジネス的に「最適」ではない こんにちは!アルダグラムでエンジニアをしている森下霞です。 外部DBとの同期処理、どこで呼び出すのが正解? LockWaitTimeoutの原因を追う中で、外部サービスへの呼び出しをトランザクション内で行っていたことが分かりました。 そこから、LockWaitTimeout を避けるための対策を検討する中で、整合性・UX・実装コスト、それぞれのトレードオフをどう整理し、どんな判断に至ったのかを紹介します。 LockWaitTimeoutから始まった調査 ある処理で ActiveRecord::LockWaitTimeout が発生しました。調査を進めると、DBトランザクション内で外部DBサービスを呼び出していたことが原因だと判明。なお、このとき呼び出していた外部サービスは Fire