Context
We use Podio in combination with Globiflow and Webmerge and it does most of the times exactly what we need but now we start to get to the limits of what is possible with Podio API.
Problem
In a front-end portal we expose podio data to our customers. This gets to be very slow... We did some loadtestings/timings. To be more precise; this call for example takes 20 sec:
\PodioItem::filter(19087964, ['filters' => ['request-sent-to' => [$company->id],],'limit' => 200, 'offset' => 0]);
Question
What can we do to speed it up?
Fyi: We did apply all the standard stuff for reducing API usage and optimizing our calls such as:
- Avoid making API requests inside loops. Instead of fetching individual objects inside a loop, fetch a collection of objects in one API operation. E.g. filter items
Cache results whenever possible. This is especially true when you are displaying data to the public (i.e. every sees the same output).
Don't poll for changes. Instead of polling Podio to see if your content has changed use webhooks or push to receive a notification.
Use logging to see how many requests you're making
Bundle responses with "fields" parameter