Кажется, проблема в том, чтобы решить, кто является хозяином пользовательских данных, потому что сейчас S3 пытается обслуживать двух мастеров.
S1 --> S3
S2 --> S3
Давайте сделаем S1 мастером пользовательских данных, чтобы любая другая система, которая принимает эти данные (например, S2), отвечала только за обновление мастера. Таким образом, S3 получает пользовательские данные из одного источника (мастер пользовательских данных).
S1 --> S3
S2 --> S1 --> S3
Мастер отвечает как за потребление, так и за создание данных, которыми он владеет. Другая система может потреблять (и даже хранить) те же данные, , но может выдавать только мастеру . Ни одна система не может выдавать данные, которые ей не принадлежат, ни одной другой системе, кроме основной базы данных.
На самом деле не имеет значения, какая система является хозяином, если есть только одна. На самом деле не имеет значения, сколько систем хранит копии данных, если существует только один мастер. Наличие у каждого системного мастера одного типа данных, вероятно, более масштабируемо, чем отдельный мастер для всех данных.