| Stateless API, SSR, auth proxy, transform | Workers | Durable Objects unless shared state is required |
| Strongly consistent per-entity coordination | Durable Objects | KV counters, global D1 locks, process globals |
| Relational SQLite data | D1 | R2/KV for queryable relational data |
| Large files, media, exports, backups | R2 | D1/KV for blobs |
| Fast globally cached values | KV | KV as source of truth for coordination |
| Existing Postgres/MySQL database | Hyperdrive | Direct cross-region DB connections from every request |
| Background fan-out or deferred work | Queues | Queues for ordered workflows or shared progress state |
| Ordered durable multi-step process | Workflows | Manual retry state scattered across queues and D1 |
| Native binaries, long-running processes, larger runtime shape | Containers | Containers as first choice for normal HTTP APIs |
| Data realtime: chat, multiplayer, collaborative docs | Durable Objects + WebSockets | One global singleton object |
| Media realtime: audio/video/WebRTC | Cloudflare Realtime | WebSockets for audio/video media transport |
| LLM inference from Worker | Workers AI or external model through AI Gateway | Assuming Workers AI always has best model quality |
| RAG/search | AI Search for managed retrieval, Vectorize for custom vector search | Blind prompt-only answers without retrieval checks |
| Autonomous multi-step tool user | Agents SDK | Agent for simple chatbot, lookup, or deterministic workflow |