A data transfer protocol utilizes a set of actions for affecting different
objects that are stored in a data store. The data transfer protocol
supports a set of application programming interfaces (APIs) that are
applicable to the different objects. With the APIs, the data transfer
protocol may synchronize a centralized data store with independent data
stores. The data transfer protocol may support data that is hierarchical
while maintaining referential integrity. Node objects may vary from
nightly bulk uploads to interactive users uploading or querying smaller
portions of the database. The data transfer protocol provides the
semantics to carry out these operations with a fixed number of APIs for
any arbitrary database. The data uploads may be sparse depending on what
the remote data store holds and need not be in serial order.