복제는 변경 사항을 **소스(source, 마스터)**에서 하나 이상의 **레플리카(replica)**로 스트리밍합니다. 소스는 커밋된 모든 변경을 **바이너리 로그(binlog)**에 기록하고, 각 레플리카의 I/O 스레드가 그 로그를 복사하며 SQL/적용(applier) 스레드가 그것을 재실행하여 레플리카들이 동일한 데이터로 수렴합니다.
흐름
css
writes
app ---------> [ SOURCE ] --- binlog ---> [ replica 1 ] <-- reads
| [ replica 2 ] <-- reads
+---------- binlog ---> [ replica 3 ] <-- reads
