1. A method comprising: receiving a set of changes that has been applied at a source database and that is being replicated from the source database to a destination database; analyzing the set of changes and determining that the set of changes includes two or more of: a subset of row-level changes, wherein each row-level change affects an individual data row; a subset of statement-level changes, wherein each statement-level change affects multiple data rows; and a subset of procedure-level changes, wherein each procedure-level change includes a stored procedure call; determining a set of dependencies between changes that are included in the set of changes, wherein at least one dependency in the set of dependencies is between (a) a first change in one of the subset of row-level changes, the subset of statement level changes, and the subset of procedure-level changes and (b) a second change in another of the subset of row-level changes, the subset of statement level changes, and the subset of procedure-level changes; assigning, to two or more processing elements, the changes that are included in the set of changes; and applying the set of changes to the destination database by executing the two or more processing elements in parallel to each other and based on the set of dependencies; wherein the method is performed by one or more computing devices.