I set this at an arbitrary value because I didn't think that the queue would ever get to 1000 user initiated actions (increasing the unit count to any number of units is still only a single action).

I had also thought about using an incremental counter after I wrote this as having a random key really doesn't give us anything. When we implement a shared changeSet across the environment this key generation will likely be changed into a hash of the changes.

The changeSet is an object because I wanted to keep the changes in a hierarchical system. 
For example. 
- The user creates a service (new top level entry is created)
- The user makes a change to that service (a new entry is created under this top level entry)
- The user increases the unit count on that service (a new entry is created under the top level entry)
- The user destroys that service before deploying it. (The top level object is removed, removing all related changes)