1. A method for recursively saving an inserted or updated object that is part of a hierarchy to a database, the method comprising: receiving a value for a first record in a database; determining that a parent record of the first record has a field that is dependent on the received value; recursively determining that a grandparent record of the first record has a field that is dependent on the received value; loading the first record from the database into a first object; updating, using a processor operatively coupled to a memory, the first object with the received value; flushing the updated first object to the first record in the database; loading the parent record from the database into a second object; updating the second object based on the received value; flushing the updated second object to the parent record in the database; recursively loading the grandparent record from the database into a third object; recursively updating the third object based on the received value; recursively flushing the updated third object to the grandparent record in the database; wherein the method further comprises: detecting a fault in processing a set of records of the database, wherein at least one of the records includes at least one side effect; rolling back each of the records processed including the first record and retrying processing on a subset of the set of records in which records associated with faults have been removed until a subset of the set of records in which each record of the subset of records is configured to be processed to the database without fault is determined; and processing the subset of records to the database and executing the at least one side effect, thereby ensuring that no side effects have occurred from executing code on behalf of any records associated with a fault.