Что сказать
«App Router fetch в Server Component async/await — data в render, no useEffect, no client waterfall, secrets on server. Watch accidental waterfall: inline await serializes independent requests — Promise.all или не await top, wrap slow в Suspense, fast stream first. React dedupes identical fetch per request; DB/SDK — React cache() same dedupe. Client fetch React Query — interaction-driven data. Next 15 fetch uncached by default — opt in explicitly.»
Итог
Fetch pitch: server default + parallelize + cache() for ORM + explicit Next 15 cache.