Фон:
У нас есть большая (15+ миллионов) таблица предметов, которая часто обновляется в течение дня (в среднем 300K ежедневно). Ожидающие изменения сохраняются в промежуточной таблице, и задание выполняется в течение дня, чтобы читать изменения из этой таблицы, делать обновления и отмечать изменения как обработанные.
Многие другие приложения используют данные в таблице элементов для выполнения различных задач. Часто эти задачи являются плановыми и интенсивными, поскольку они включают сравнение живых данных со старыми моментальными снимками и соответственно обновление других систем. Например, мы перечисляем элементы на eBay и сравниваем данные реального элемента с нашими существующими листингами, чтобы узнать, нужно ли нам вставлять какие-либо новые списки eBay, удалять предметы, которые мы продали, обновлять количества и т.д. Поскольку данные такие большие, большинство из этих приложений выполняются нечасто, оставляя вещи устаревшими большую часть времени.
Мой вопрос:
Мы рассматриваем возможность внедрения шаблона издателя/подписчика с помощью Service Broker. Целью было бы опубликовать сообщение, когда элемент изменится, к которому могут подписаться различные другие системы (например, наше приложение eBay). Это позволит нам сделать более подробные обновления ближе к реальным, а не к большим и нечастым обновлениям, которые включают в себя запрос всех данных, а не только то, что изменилось. Однако после использования Google это не похоже на то, что это общий шаблон базы данных, и который вызывает красные флаги. Является ли это неправильным использованием Service Broker (хотя я нашел небольшой раздел в Pro Sql Server 2008 Service Broker при выполнении Pub/Sub)? Как обычно эта проблема решается? Это кажется довольно распространенной проблемой.
TL; ДР:
Цель: обновлять различные системы динамическим, слабо связанным способом при изменении отдельных элементов.
Вопрос: Реализовано ли решение pub/sub style с Service Broker для жизнеспособного решения с высокой громкостью?