Next.js caches server fetches by default based on request and route settings. You can opt out with cache: 'no-store' or set a revalidate time to refresh data periodically. revalidatePath/revalidateTag let you invalidate cached pages or data on demand.
export const revalidate = 60
const res = await fetch('https://api.example.com/posts', { next: { revalidate: 60 } })
const posts = await res.json()