A replication system maintains current data in separate databases by replicating the data-changing operations that take place in one database and sending those operations to another database.
The source of a replicated transaction is called the primary database. The target (or destination) of a replicated transaction is called the replicate database. As shown in Figure 1-1, the primary database publishes replicated transactions, and the replicate database subscribes to replicated transactions.
In bidirectional replication, a single database acts as both a primary database and a replicate database. Bidirectional replication requires a method of filtering the replicated transactions to prevent circular replication back to the original primary database source.