The Apply coordinator spawns multiple apply processes threads (as many as possible. The exact number of threads will be equal to number of parallel threads that are updating the source table.) to improve performance. Each In the case of RAC and the TNS connection of dbvrep is RAC-aware, apply will even spread the loads across the RAC nodes. Each Apply process will apply its changes until the next commit (or rollback) point and then wait for the other Apply processes to also reach this point, before continuing on. This ensures data integrity and that data is inserted in the correct sequence. Each Apply process has its own connection to the database. If the target database is Oracle, then this will be an OCI connection.
When there is a conflict, all the Apply processes will pause, except for the Apply process with the conflict. Apply will in effect become a serial process. When the conflict is resolved, then the other Apply processes will be resumed and the applying of changes will continue in a parallel process.
...