The way to do this (especially when talking about DAM Assets, which need to have a canonical source in AEM) is to simply put a CDN in front of Dispatcher/AEM.
If youre talking about AEM Author, you can cache Clientlibs on the CDN, but you must expire them after ANY code deployment. Never cache DAM Assets on AEM Author as this will result in content mis-matches, and result in a broken experience.
If youre talking about AEM Publish, you can cache both Clientlibs and Assets on the CDN. You would set up the flow like so: