The reason why you might see the same workflow consuming one particular amount of workload units in one instance, and another given amount of workload units in another instance, is because we use caching behind-the-scenes to run certain operations. Caching allows us to store information in a way that is quick to access, so that we don’t need to find data in the database every time, since this would be a more expensive operation.
So, while you might be seeing one amount of WUs being run most of the time, this is actually because we have been able to save time and computing power by caching certain operations in your workflow. Caching allows us to run your workflows faster and without as much “overhead”, which then leads to fewer WUs being consumed.
Sometimes, however, there’s nothing in cache. This is either because the data was expired and we need to update its value in cache, or simply because it was never set before. In both cases, the process has to run “for real”, and this takes up more computing time (and WUs).
To clarify, the published workload unit costs in our documentation do not take caching into account, and instead will reference this larger value. This means that sometimes, the same workflow event or action will consume a bit more, because it has to run without cache. Most times, however, it will use cached values, and so it will be cheaper to use. Using caching is a win-win, both for Bubble in terms of operating costs and for our users in terms of workload consumption.