So I'm trying to figure out how to make it possible to provision 100+ instances on EC2 in one createNodesInGroup call without getting crushed by API rate limits. The combination of the min count/max count parameters and the idempotency with a client token (see http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html) makes the raw creation of 100+ instances without a thundering herd of RunInstances calls very realistic, but then we hit the issue of polling those nodes (even with the idempotency, we'd still end up having at least one is-node-running polling call per node, and then we'd hit the same thing but much bigger at terminate/pause/resume/etc)...
So the problem I'm trying to tackle is bigger than just EC2, I think. A decent number of provider APIs allow querying for more than one node in a single DescribeInstances-equivalent call, and I've done some work in the past that allowed for switching over ComputeService.listNodesByIds(...) to use those approaches when possible. But polling is very much about doing one call per node, i.e. in https://github.com/jclouds/jclouds/blob/master/compute/src/main/java/org/jclouds/compute/predicates/internal/RefreshNodeAndDoubleCheckOnFailUnlessStatusInvalid.java?source=c- I'm honestly completely unclear as to what the best approach would be to switch this to using a cached/periodically refreshed list instead. Does anyone have any thoughts on this before I just start beating my head against it? A.