What is the best way to route between OpenAI and Anthropic for a chat product?
For a chat product, the practical answer is latency-based routing with a shared fallback. Pick the model that fits your quality bar as the primary, then declare one or two fallbacks that Moon can switch to when the primary crosses a latency budget you set.1
Most teams start with Claude Sonnet 5 as the primary and GPT-4.2 Mini as the fallback. The two models are close enough in quality for chat that the switch is imperceptible to the user, and the fallback carries the moment the primary has a slow minute.23
You should also plan for the case where every model in your chain is slow. Moon returns the response from whichever finished first, but if latency is a hard product constraint, add a small local fast-path for the most common questions.4
Sources
1
Fallback and routing
docs.moon.dev
2
Model quality benchmarks 2026
artificialanalysis.ai
3
Choosing between hosted and open
moon.dev / blog
4
Client-side caching for chat
vercel.com / guides