A learning lesson on how variables, bundles, arrays and aggregators work

As I read the community Q&A, I continue to be amazed, surprised and sometimes even amused just how confusing the idea of processing bundles, array structures and aggregators can be. And how this affects operations use directly!

With that in mind I created a simple scenario that calls no actual app APIs but uses built in tools and the Parse JSON module in the JSON app.

This scenario will illustrate (hopefully quite clearly) how output bundles govern the number of operations subsequent modules use. It also will show how arrays can be created on the fly and how the Parse JSON app can generate arbitrary JSON to simulate the creation of output bundles.

I liberally annotated each module and filter being used and explained what is happening here. Please make sure you read the notes attached to each module and the first filter after the iterator.

My hope is that others will take this scenario and build upon it to show other manipulations. I find these sort of exercises help you understand Make at a much deeper level so that when you actually build a scenario you understand why something is occuring rather than just throwing your hands up in frustration. Make is a very elegant tool, but understanding the concepts behind input/output bundles, operations and the way data is processed in Make is key to being effective with it especially when you start plugging in real apps that generate complex JSON results.

Here’s the blueprint:
experimenting with bundles operations and parse JSON (16.4 KB)

And a video walk through to explain what is happening here:


I have since learned that an iterator can iterate a collection just like an array. Instead of going over every array element it iterates every key in the collection. Try it sometime to see.