Мы создаем приложение поверх Siddhi (использующее библиотеку Java), которое позволяет пользователям динамически добавлять правила и запускать всю поступающую информацию в будущем в соответствии с этими правилами.Мой вопрос: лучше ли иметь одно большое приложение с множеством запросов, потоков, окон и разделов или разбить каждый запрос на его собственное приложение?
Мы включили все в одно приложение Siddhi (SiddhiAppRuntime
), но это начинает становиться большим, и я боюсь, что вещи могут начать взаимодействовать друг с другом непреднамеренными способами.Мы также делаем моментальный снимок SiddhiAppRuntime
и восстанавливаем состояние при каждом перезапуске нашего приложения.Скорее всего, это может привести к массовому восстановлению, если мы будем повторно запускать сотни шаблонных запросов.
Я рассматриваю возможность создания отдельного SiddhiAppRuntime
из одного SiddhiManager
для каждого запроса.Преимущества (как я вижу их) будут состоять в том, чтобы уменьшить риск непреднамеренных взаимодействий, сделать каждый запрос способным функционировать самостоятельно, и восстановление запроса после завершения работы должно быть намного проще, так как для этого потребуется только восстановить один запрос.Потенциальные недостатки могут быть увеличены за счет наличия сотен SiddhiAppRuntime
с.
Что считается наилучшей практикой для нашего сценария?Что обеспечит лучшую производительность, как для обработки данных через правила, так и для восстановления правил в случае, если мы должны перезапустить.
(Если это слишком широко или требуется какое-либо разъяснение, я сделаю все возможное, чтобы обновитьэтот вопрос соответственно)