1. A system, comprising: a cache memory; and a processor programmed to: cache a batch of data records generated by at least one application for persistent storage to the cache memory, where at least one of the batch of data records comprises at least one foreign key reference that each references one non-existent data record, where the processor is programmed to: maintain a bidirectional directed graph with each data record represented as a node within the bidirectional directed graph, where each vertex in the bidirectional directed graph other than a root node represents one of a plurality of parent records and one of a plurality of child records to be persisted to the database, and each edge in the bidirectional directed graph represents a foreign key directional relationship from one child record to one associated parent record; determine that one of a plurality of batch database storage events has occurred; iteratively determine, in response to the one of the plurality of batch database storage events, which of the at least one of the batch of data records do not comprise the at least one foreign key reference that each references the one non-existent data record; and persist to a database, via a batch storage operation, each of the cached batch of data records that do not comprise the at least one foreign key reference that each references the one non-existent data record.