1. A data processing system, comprising: a first database maintained by a first party; a second database maintained by a second party different from and unrelated to the first party, wherein the second party is at least one of a manufacturer or vendor of a software product comprising an extensible data model defining the second database and wherein the first party is a purchaser of the software product; a work queue operable to specify data to be added to the second database; an extract, transform, and load module operable to write data from the first database to the work queue; a data import module operable to import data from the work queue to the second database, wherein the first party is not privileged to write the data directly to the second database, wherein the data in the first database is semantically incompatible with the second database, and wherein the data import module transforms the data written to the work queue to a semantically compatible form for the second database; a specification to extend a second database maintained by a second party, the specification being provided by the first party and defining tables and columns to be inserted in, deleted from, and/or updated in a data model defining to the second database; a modifier operable to modify the data model to reflect the specification and to create the work queue corresponding to the modification; an identity resolution service operable to maintain a table of entity identifiers, hints, and corresponding natural keys, a hint indicating when a surrogate key is valid for use; and a key identifier operable to generate new surrogate keys, send new surrogate keys to the identity resolution service along with a corresponding hint that a new surrogate key is available, and use the hint to map from an entity identifier to a corresponding surrogate key.