Considering your scenario, I think Microsoft BranchCache can do the job for you. Sorry, I don't have practical experience of using it but from whatever I have read, it does the job, especially for your case-requirement (200 branches etc).
Use BranchCache to cache SMB share content at a branch office overview:
BranchCache supported versions of ONTAP:
Another option: NetApp FlexCache (Not suitable for your requirement)
FlexCache is supported on AFF, FAS, and ONTAP Select systems running ONTAP 9.5 or later versions. A cache is a temporary storage location that resides between a host and a source of data. The objective of a cache is to store frequently accessed portions of source data in a way that allows the data to be served faster than it would be by fetching the data from the source. FlexCache in ONTAP solves these problems by providing a writable, persistent cache of a volume in a remote place that is consistent, coherent, and current.