Как сделать синхронизацию?
============================

 Доброго времени суток.  

Суть такая, есть клиенты (приложения Windows) и нужно сделать на них синхронизацию данных.  

Пока есть идея такая:  

1) SignalR для оповещения, что доступны новые данные;  

2) RestAPI для CRUD'a;  

  

Т.е. при каждом запросе на API, API будет говорить SignalR'y, что нужно оповестить клиентов о новых данных.  

  

Скажите, что можно просто гонять все данные через SignalR, но, например, при первом подключении будет идти запрос на получение всех актуальных данных, а их может быть, например, 10000 (допустим данных о пользователях), SignalR может не вывезти такую нагрузку (сколько у него там ограничение, 32кб?), да и я не думаю, что это правильный путь.  

  

На сколько это реально и правильно ли.  

Главный вопрос - как сделать это правильно.  

p.s. - нагрузка не большая, поэтому предполагаю, что SignalR и API будут в одном сервере. 

 Не знаю, существует ли какая-то серебряная пуля в синхронизации данных, думаю, что всё довольно индивидуально в зависимости от проекта.  

Ваша идея вполне жизнеспособна, реализовывайте.  

От себя могу добавить, что не нужно первоначальные данные грузить через SignalR, его можно использовать лишь для обновления данных.  

Например, действительно ли приложению нужно сразу знать весь список пользователей? Да и нужен ли вообще целый список? В любом случае, когда уже пользователи есть, при добавлении/обновлении какого-то из пользователей можно через SignalR отправлять на все клиенты не только уведомление, но и все данные по пользователю сразу. Конечно, если нет массового обновления всех пользователей, тогда этот вариант не прокатит.  

В общем, всё сугубо индивидуально