Why would you need to store all the properties in an external database? If you disable doDeletes you can make it so a failed request remains intact with it's properties and invoke a workflow to attempt to build the machine again.
-Sid Smith
http://www.dailyhypervisor.com