Here is a page with the standard list of limitations around Actions.
As you can see 1mb is the max result you can return so you have some limitations about how big your data can grow before you need to do Paging of the result set.
If the data you are retrieving from AEP does not to be real-time I would recommend catching the data then giving the users the same result setup until a time period has passed where the data would be too old to be considered useful in the app.
For example, if your app only needs to show yesterday's results in a dashboard you would only want to run the report once a day and store it in either STATE or FILE store.
In the use case above where I only have to store the data for a day, I would probably use the STATE store. It's simple to use and you can easily set the data to expire after a day. I would set the KEY to today's date like 7-19-2021 and store the result set in the provided 2mb value.
Here are some state limitations to be aware of.
STATE limitations
- Max state value size: 2MB
- Max state key size: 1024 bytes
- Max total state size: 10 GB
- Token expiry (need to re-init after expiry): 1 hour
- Non supported characters for state keys are:
'/', '\\', '?', '#'
Using File as caching would work as well and is not a bad way to do it as well.
I would definitely put caching in place though to greatly speed up the application and to reduce the unneeded overhead on AEP.