Patent ID: 8856069

Claim:
A computer-implemented method, comprising: receiving a command at a server, the command to save changes associated with a change set to a data storage device, the change set based on a data operation related to at least one of an update operation, a delete operation, or an insert operation, the change set representing inserted, updated, or deleted database entities made by a client device with respect to data stored at the client device, wherein the server includes a multi-stage save pipeline comprising a plurality of modules wherein two or more of the modules are configurable to execute user-specified executable code, and wherein each particular module of the two or more modules has particular user-specified executable code associated thereto, and wherein each particular user-specified executable code that is associated with each particular module is executed based on each particular module being invoked at the server, and wherein each particular user-specified executable code is distinct from the data operation; validating, at the server, the database entities of the change set; executing, at the server, one or more pre-operation commands on the change set, wherein the pre-operation commands are pre-defined and separately executed from the data operation; when at least one of the user defined pre-operation commands modifies one or more first entities of the change set, revalidating the one or more first entities at the server; executing, by the server, the data operation based on the change set; executing, at the server, one or more post-operation commands on the change set, wherein the post-operation commands are pre-defined and separately executed from the data operation; and when at least one of the post-operation commands modifies one or more second entities of the change set, revalidating the one or more second entities at the server.