← All questions
System DesignVery Hard· Component Decoupling· Cascade Architecture· System Complexity

Retrieval wants the router to also choose which datasto...

Joint routing over both actions and sources creates a massive, sparse labeling problem that is inefficient to maintain. By using a cascade, you separate the decision of ‘what to do’ from ‘where to get it.’ This is generally preferred because decomposition and source choice are often independent. You should only merge these decisions if logged traffic shows high mutual information between the action and the source, indicating that the decisions are genuinely coupled.

Code playground (Python)