Most read traffic should never reach your origin. That's what edges are for.
Read-heavy traffic — product pages, images, JS bundles, news articles — is mostly the same answer over and over. Asking your origin server for it every time wastes capacity you'll need for the unique requests (checkouts, personalised feeds, writes).
A CDN sits between your client and your origin. On a hit, it answers immediately and never calls back. On a miss, it forwards to the origin and caches the answer for next time.
Read-heavy traffic is overwhelming a single origin server. Insert a CDN between client and origin so most reads terminate at the edge and never reach your backend.