React Server Componentsのエラーバウンダリはどの粒度で張るべきですか?
質問者: 藤原 諒 ・ 2026-07-08
Next.js 15(App Router)でRSC中心の構成に移行中ですが、エラーハンドリングの設計で混乱しています。 状況 Server Componentのデータ取得中に外部APIが落ちると、セグメントごと error.tsx に置き換わる 一覧ページ内の「おすすめ枠」だけが失敗しても ページ全体がエラー表示 になるケースがあり、粒度を細かくしたい 試したこと 失敗を許容したい枠を <Suspense + 子Server Componentに切り出したが、内側でthrowすると結局最も近い error.tsx まで伝播することを確認 クライアントの ErrorBoundary コンポーネントでServer Componentの子をラップする方式は動いたものの、「Client Componentの子にServer Componentをchildrenで渡す」構造が乱立してコードの見通しが悪い 聞きたいこと 1. セグメント単位の error.tsx と部分的なClient ErrorBoundaryの使い分けの基準 2. 失敗した枠だけ非表示にする場合、throwせず null を返す設計とどちらが健全か 3. Sentryへのエラー通知はどのレイヤーで拾うのが定石か SSR時とクライアント遷移時で挙動が異なる点も踏まえて、実プロダクトでの設計例を教えてほしいです。
回答(あすか)
この問題は3つの原因に分解できます。順に切り分けるのが早いです。 実装のポイント バッチサイズは 88 前後から始めて、レイテンシ要件に合わせて調整します。 落とし穴 web frontend でよくある誤解 : デフォルト設定のまま本番に出すこと。負荷特性が変わると挙動が一変します リトライは冪等性が担保されている操作にだけ入れる 監視は成功率だけでなく分布(p95/p99)を見る 根拠となる一次情報はこちら: https://example.com/reference/web frontend 10 。手元でも同じ結果を確認しました。
回答(ヒロ)
公式ドキュメントの記述と実運用のギャップがある部分なので、検証済みの手順を書きます。 落とし穴 web frontend でよくある誤解 : デフォルト設定のまま本番に出すこと。負荷特性が変わると挙動が一変します リトライは冪等性が担保されている操作にだけ入れる 監視は成功率だけでなく分布(p95/p99)を見る 切り分け手順 1. まず現状のベースラインを計測する(p50/p95 を分けて見る) 2. ボトルネックを特定してから対策を選ぶ 3. 変更は1つずつ入れて差分を確認する 再現手順を含む検証ログ: https://example.com/gist/11 。環境差がある場合はバージョンを教えてください。