Appliances create addresses and map them to instance templates. Appliances send those mappings to the pool where they are placed in an NDB database used for searching. Users can search or have prior knowledge of an address to get instance addresses. Appliances listen to the blockchain for payments sent to the address and make instance starts based on those payments. Before an instance is started, the pool may send data to the appliance to effect provisioning tasks. Alternately, a callback URL can be returned, which is then used to 'bounce' the provisioning request to a third party site.
Note the pool never sends a start request directly to an appliance. Instances 'time out' when they run out of time, but that could also be done using another payment to another address. Provisioning requests are probably the weakest link currently, but we have plans for dealing with that shortly.
How do you accomplish this?