The physical structure of the target database can be different in terms of tablespaces, file paths, indexes, etc.
One can create the structure of the database including tables, triggers etc manually and then enable replication for the data only.
DDL replicattion can be enabled on schema level only.
PL/SQL objects should be created on the target manually (via Datapump for example) and once replication starts you can replicate DDL changes.
We do not replicate DCL like changes in grants or roles.
We always recommend to run the Pre-Flight script to get more detailed information about the environment