Replication lets you have multiple non-connected copies of your application, and synchronize the contents when you deem necessary. The data is as old as the last synch.

Replication changes any auto-number field to Random. If you need sequential auto-numbering, you have to do it yourself in code, but in a way that won't clash when you synch the replicas together.

Design master: You can change both the design and the data. The synchronization process will send design changes to, and data changes to/from the replicas. You can keep an object private by marking it non-replicable. If you lose the master, M$ has an add-in to convert one of the replicas into a new master.

Replica: You can change the data. The synch process will send the data changes to/from the other db's. You can create new objects but they remain private to that db and cannot be replicated. You cannot alter any object that originated in the master.