Data Replication is a technique used in IT production environments where data in one node is cloned in multiple nodes so to resist single/multi-point failures, thereby increasing availability. Using data replication strategies, databases are built to be resilient in the event of failure of one or more nodes. Most databases use two types of replication strategies:
1) Synchronous replication
In Synchronous replication, modification in one replica will update all other replicas before
returning to application which caused the modification. It is also called as eager application.
Data will be always consistent with this type of replication. With more replicas present in the
system there will be profound impact on performance of database. E.g. MySQL Cluster
2) Asynchronous replication
In Asynchronous replication, modification in one replica will return immediately and
modification propagation will be started. Asynchronous replication is also called as lazy
application. Data in the database may be inconsistent with other replicas since all
replication updates cannot happen within the same time. Some mitigations for consistency issues
can be like if queries are redirected to node which makes first update, meanwhile the asynchronous update happens in rest of the other nodes. As all replicas could not update with same speed, data consistency issues tie up with slowest update node. E.g. Apache Cassandra