Claude Codeでコンテンツベースルーティングを設計する:ペイロード内容によるメッセージ振り分け・動的ルーティング
はじめに 「メッセージのペイロード内容によって送り先を変えたい」「高額注文は優先Workerへ、通常注文は通常Workerへ」——コンテンツベースルーティングで、メッセージの内容を評価して動的に送り先を決定する設計をClaude Codeに生成させる。 CLAUDE.mdにコンテンツベースルーティング設計ルールを書く ## コンテンツベースルーティング設計ルール ### ルーティングルール ...

Source: DEV Community
はじめに 「メッセージのペイロード内容によって送り先を変えたい」「高額注文は優先Workerへ、通常注文は通常Workerへ」——コンテンツベースルーティングで、メッセージの内容を評価して動的に送り先を決定する設計をClaude Codeに生成させる。 CLAUDE.mdにコンテンツベースルーティング設計ルールを書く ## コンテンツベースルーティング設計ルール ### ルーティングルール - ルールはコードではなく設定として外部化(DB/Redis) - ルール評価は高速(JSONPathまたはシンプルな条件式) - デフォルトルート: どのルールにも一致しない場合の送り先 ### ルーティング先の種類 - キュー名(Redis Stream/RabbitMQ Exchange) - サービスエンドポイント(HTTP POST) - 複数送り先(Fanout的な複数ルート) ### 動的ルール更新 - ルールのホットリロード(再起動不要) - ルール変更はRedisキャッシュを即座に無効化 - ルール評価のテスト機能(test modeでメッセージを渡してルートを確認) コンテンツベースルーティング実装の生成 コンテンツベースルーティングシステムを設計してください。 要件: - 設定ベースのルーティングルール - JSONPathによるペイロード評価 - 動的ルール更新 - ルーティングログ 生成ファイル: src/messaging/routing/ 生成されるコンテンツベースルーティング実装 // src/messaging/routing/contentRouter.ts — コンテンツベースルーター export type RouteCondition = | { type: 'field_equals'; field: string; value: unknown } | { type: 'field_greater_than'; field: string; value: number } | { type: 'field_in'; field: string; values: unknown[] } | { type: 'field_exists'; field: string } | { type: 'regex'; field: string;