JevCode / パターン

アーキテクチャパターン

TypeSafe を使用してシステムを構築するアーキテクチャパターン。「離散的な原子レベルの意思決定」で考えることを学ぶことが、その真価を最大限に引き出す鍵となります。

本文はzh-CNからの機械翻訳です。校正は未実施で、参考情報としてのみご利用ください。

ソース: docs.typesafe.ai/patternspatternsarchitecture
Overview of architecture patterns

核心理念

TypeSafe はより大きなシステムに埋め込むことを目的として設計されており、意思決定を行うために使用されます。重要なスキルは:離散的で原子レベルの意思決定として考えることであり、それらの意思決定を組み合わせることで複雑なシステム動作を実現します。

これは、1回の呼び出しで複雑なビジネス問題を解決しようとするのではなく、いくつかの独立した判断に分割し、それらを自前のコードで組み合わせることを意味します。コード内の組み合わせロジックは決定論的であり、テスト可能で、調整可能です——これが信頼性の源泉です。

このセクションを読む前に、問題原語信頼度を理解してください。

4つのパターン

パターン 機能 効果
ファンアウト並列 1回の呼び出しで多くの質問(推測的なものを含む)を送信し、コードが関連するものを決定する コスト、速度
信頼度ルーティング 信頼度を第2の意思決定軸として使用し、より安全なシステムを構築する 信頼性、安全性
複合スコアリング 複数の分析次元を単一のスコアに統合する コスト、信頼性、速度
意図ルーティング ユーザーの意図を分類し、適切なハンドラーにルーティングする コスト、速度

連携方法

これら4つのパターンは排他的な選択肢ではなく、積み重ね可能な構成要素です。典型的な本番環境システムでは、複数のパターンが同時に使用されます:

ユーザーリクエスト

   ├─ [意図ルーティング] まず、このリクエストのタイプを判定 ──────────┐
   │                                                │
   ├─ [ファンアウト並列] 必要な可能性のある判断を一度に質問 ──────┤
   │                                                │
   ├─ [複合スコアリング] 候補結果を多次元でスコアリングして順位付け ────────┤
   │                                                │
   └─ [信頼度ルーティング] 高信頼度では自動実行 / 低信頼度では手動へエスカレーション ┘

意図ルーティングは通常、最初に配置されます。これは、後続の処理パイプラインに何が必要かを決定するためです。ファンアウト並列は全体を通じて適用されます。なぜなら、質問を1回の呼び出しにパッケージ化することには、ほぼ追加の遅延コストがないからです。複合スコアリングは、順序付けが必要な場合に使用されます。信頼度ルーティングは最後のゲートとして機能し、結果を自動実行するか、人間にエスカレーションするかを決定します。

デザイン原則

原子レベルへの分割。 1つの質問で1つのことだけを尋ねてください。「一度に全部尋ねた方が楽だ」と思われる複合的な質問は、モデルがどの部分でエラーを起こしたのかを判断できなくなり、個別に調整することもできなくなります。

コードは組み合わせを、モデルは判断を担当する。 重み付け、閾値、分岐ロジックはすべてあなたのコード内に配置してください。これらは、あなたが理解し、テストし、パラメータ調整を行う必要がある部分です。

不確実性を可視化する。 モデルに無理やり答えを出させるのではなく、信頼度を使って「不確実」をシステムレベルで露出させ、その処理方法をあなたのコードで決定してください。

関連