Техническое задание: Разработка архитектуры распределенной системы с разделением данных
Исходная ситуация и проблема
Существует веб-сайт, работающий с двумя географически распределенными компонентами:
- Российский сегмент: Домен .ru и хостинг на территории РФ. На этом сервере должны храниться и обрабатываться персональные данные (ПД) пользователей из России.
- Международный сегмент: Домен .com и база данных, расположенная в Финляндии (ЕС).
Из-за текущих ограничений доступ к сайту из России нестабилен. Необходимо обеспечить бесперебойную и быструю работу ресурса для обеих аудиторий.
Цели и требования
Основные цели:
- Обеспечить стабильную доступность сайта как для пользователей в РФ, так и за ее пределами.
- Достичь высокой скорости загрузки страниц для российской аудитории.
- Реализовать механизм обмена данными между двумя сегментами системы.
Критическое ограничение (НЕ подлежит обсуждению):
Персональные данные пользователей из Российской Федерации не должны передаваться и храниться за пределами РФ (в частности, в ЕС).
Ключевой принцип архитектуры
Отказ от единой общей базы данных. Требуется архитектура с двумя отдельными базами данных и управляемым, настраиваемым процессом синхронизации между ними.
Требования к решению
- Разработать логическую схему разделения данных: определить, какие данные хранятся только в РФ, какие - только в ЕС, а какие подлежат синхронизации.
- Спроектировать механизм управляемой синхронизации (не двунаправленной репликации в полном объеме), который позволит обмениваться только разрешенными типами данных.
- Предложить технологический стек (например, выбор СУБД, инструменты для ETL-процессов или асинхронных очередей, API-шлюзы).
- Учесть средний уровень трафика.
- Обеспечить целостность данных и минимизировать конфликты при синхронизации.
Ожидаемый результат
Подробное описание архитектурного решения, включая схему потоков данных, план внедрения и рекомендации по программной реализации. Решение должно быть технически рабочим и соответствовать заявленным юридическим ограничениям.
Открыт к обсуждению конкретных технологий и деталей реализации.