Use when designing how messages are directed, split, aggregated, and orchestrated across enterprise systems based on Enterprise Integration Patterns (Hohpe & Woolf).
USE FOR: content-based routing, message filtering, splitter/aggregator, scatter-gather, routing slip, process manager, dynamic routing, recipient lists
DO NOT USE FOR: message format (use message-construction), message transformation (use message-transformation)
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
Use when designing how messages are directed, split, aggregated, and orchestrated across enterprise systems based on Enterprise Integration Patterns (Hohpe & Woolf).
USE FOR: content-based routing, message filtering, splitter/aggregator, scatter-gather, routing slip, process manager, dynamic routing, recipient lists
DO NOT USE FOR: message format (use message-construction), message transformation (use message-transformation)
Message Routing patterns determine how a message gets from its origin to the correct destination(s). Rather than hardwiring sender to receiver, routing patterns decouple message producers from consumers by introducing intermediary components that inspect, split, aggregate, and direct messages based on content, rules, or dynamic conditions. These are among the most frequently used patterns in enterprise integration.
Patterns
Content-Based Router
Inspects message content and routes to the appropriate channel based on data values.
When to use: When routing rules change frequently -- feature flags, A/B testing, gradual rollouts, multi-tenant routing.
Recipient List
Sends a message to a dynamically determined list of recipients computed at runtime.
โโโโโโโโโโโโโโโโ
โโโโ>โ Recipient A โ
โโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโ
โ Message โโโโ>โโโโ>โโโโโโโโโโโโโโโโ
โโโโโโโโโโโโ โ โ Recipient B โ
(with โ โโโโโโโโโโโโโโโโ
recipient โโโโ>โโโโโโโโโโโโโโโโ
list) โ Recipient C โ
โโโโโโโโโโโโโโโโ
When to use: Notification to a variable set of subscribers -- e.g., alerting all stakeholders for a given order, where the stakeholder list varies per order.
Splitter
Breaks a single composite message into multiple individual messages, each processed independently.
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโ
โ Order with โโโโ>โ Splitter โโโโ>โItem 1โ
โ 3 line items โ โโโโโโโโโโโโ โโโโโโโโ
โโโโโโโโโโโโโโโโ โ โโโโโโโโ
โโโโโโโโโโ>โItem 2โ
โ โโโโโโโโ
โ โโโโโโโโ
โโโโโโโโโโ>โItem 3โ
โโโโโโโโ
When to use: Processing batch messages item-by-item, breaking an order into line items, splitting a file into records.
Aggregator
Collects and combines related messages into a single composite message, the inverse of the Splitter.
โโโโโโโโ
โItem 1โโโโโ
โโโโโโโโ โ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โโโโโโโโ โโโโ>โ Aggregator โโโโ>โ Combined โ
โItem 2โโโโโค โ โ โ Result โ
โโโโโโโโ โ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โโโโโโโโ โ
โItem 3โโโโโ
โโโโโโโโ
(correlates by orderId,
completes when all items received)
When to use: Reassembling split messages, combining responses from parallel processing, building summary results. Requires a correlation strategy and a completion condition.
Resequencer
Reorders messages back into the correct sequence when they arrive out of order.