Какие есть плюсы и минусы синхронной репликации

«Какие есть плюсы и минусы синхронной репликации» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Плюсы:
✅ Гарантированная консистентность данных – все реплики синхронизированы.
✅ Нет риска потери данных при сбое, так как подтверждение записи требует успешного сохранения на всех репликах.
✅ Упрощает логику приложения, так как чтение с любой реплики даёт актуальные данные.

Минусы:
❌ Высокая задержка записи – ждём подтверждения от всех реплик.
❌ Доступность снижается – при отказе одной реплики система может стать недоступной для записи.
❌ Нагрузка на сеть – требуется синхронная передача данных между узлами.

// Пример (условный): синхронная запись в 3 реплики
err := db.ExecuteTransaction(func(tx *Transaction) error {
    if err := tx.WriteToReplica("primary", data); err != nil {
        return err
    }
    if err := tx.WriteToReplica("replica1", data); err != nil { // Ждём подтверждения
        return err
    }
    if err := tx.WriteToReplica("replica2", data); err != nil { // Ждём подтверждения
        return err
    }
    return nil
})