A computer-implemented method for synchronizing data updates between a client and an enterprise information system using a synchronization server, the method comprising: mapping native attributes for a mobile business object, MBO, to a relational structure; building a list of unique surrogate keys that should currently be part of a client subscription, wherein the list includes child mobile business objects, MBOs, referenced by parent MBOs that are expected be on the client upon completion of a synchronization; determining a set of deleted surrogate keys the client currently has that are no longer in the list of surrogate keys that should currently be part of a client subscription; removing data corresponding to the deleted surrogate keys for the client from a client device database, wherein the removal is performed as part of a transaction; updating a list of surrogate keys the client is expected to have, the list of surrogate keys maintained at the synchronization server; wherein the updating is performed as part of a transaction and comprises: for surrogate keys the client already has, doing nothing; and for each new surrogate key the client does not yet have: inserting a row in the surrogate key list; and setting a timestamp indicating when the new surrogate key first became part of what the client is expected to have; the method further comprising, in response to determining that synchronization has failed: rolling back the updating of the list of surrogate keys the client is expected to have; and rolling back the removal of the data corresponding to the deleted surrogate keys at the client device database. mapping native attributes for a mobile business object, MBO, to a relational structure; building a list of unique surrogate keys that should currently be part of a client subscription, wherein the list includes child mobile business objects, MBOs, referenced by parent MBOs that are expected be on the client upon completion of a synchronization; determining a set of deleted surrogate keys the client currently has that are no longer in the list of surrogate keys that should currently be part of a client subscription; removing data corresponding to the deleted surrogate keys for the client from a client device database, wherein the removal is performed as part of a transaction; updating a list of surrogate keys the client is expected to have, the list of surrogate keys maintained at the synchronization server; wherein the updating is performed as part of a transaction and comprises: for surrogate keys the client already has, doing nothing; and for each new surrogate key the client does not yet have: inserting a row in the surrogate key list; and setting a timestamp indicating when the new surrogate key first became part of what the client is expected to have; for surrogate keys the client already has, doing nothing; and for each new surrogate key the client does not yet have: inserting a row in the surrogate key list; and setting a timestamp indicating when the new surrogate key first became part of what the client is expected to have; inserting a row in the surrogate key list; and setting a timestamp indicating when the new surrogate key first became part of what the client is expected to have; the method further comprising, in response to determining that synchronization has failed: rolling back the updating of the list of surrogate keys the client is expected to have; and rolling back the removal of the data corresponding to the deleted surrogate keys at the client device database. rolling back the updating of the list of surrogate keys the client is expected to have; and rolling back the removal of the data corresponding to the deleted surrogate keys at the client device database.