Cells ADR 010: HTTP Router は静的ルールと HTTP ベースのキャッシュ機構を使用する
コンテキスト
HTTP Router は Cells アーキテクチャの重要な構成要素です。ルールの定義とキャッシュの使用方法は、設計において混乱を招く部分でした。この変更によりその動作を明確にします。
決定事項
- HTTP Router はプロジェクトまたはルーターのデプロイメントの一部である静的ルールのみを使用します。
- ルールは JSON で記述されます。
- ルールは
passthrough(固定アドレスまたは設定からのアドレスを使用)またはclassify(Topology Service を使用)として定義できます。 classifyリクエストはjsonレスポンスの代わりに HTTP ヘッダーを使用してキャッシュ動作を制御します。- HTTP ヘッダーの使用は Cloudflare Workers - Cache が期待するキャッシュ動作と互換性があります。
結果
- 異なるバージョンを実行している可能性のある多くの別々の Cell からのルーティングルールをどのようにマージするか、およびそれに伴うすべての複雑さ(note)を解決する必要がなくなるため、HTTP Router の設計が簡素化されます。
- HTTP キャッシュ制御ヘッダーの使用により、Cloudflare Workers とのシームレスな連携が可能になります。
- ルールのマージや代替キャッシュ管理方法が必要になった場合でも、この簡素化は将来の設計改善と互換性があります。
代替案
- これは元の設計の簡素化であるため、代替案は検討されていません。
