Я не уверен, что понимаю ваш вариант использования, но есть проекты с открытым исходным кодом, которые, кажется, делают именно то, что вам нужно.
Прежде всего, у вас есть Apache Camel , который позволяет вам настраивать маршруты (статически и / или динамически). Таким образом, вы можете направить потоки событий через каждый компонент вашего конвейера в соответствии с настроенными маршрутами.
В качестве альтернативы или в дополнение к Camel, Drools Fusion и Esper - это два проекта с открытым исходным кодом, которые выполняют комплексную обработку событий (то есть фильтрацию событий, корреляцию, сегрегацию и т. Д.). Они оба поддерживают динамическое добавление / удаление правил / запросов. Таким образом, вместо изменения маршрута вы можете, например, иметь отдельный маршрут в сеансе Drools / Esper и вместо этого просто добавлять / удалять правила / запросы в соответствии с конфигурацией, чтобы делать то, что вам нужно.
Мне кажется, вам не нужно создавать «движок правил». Вы можете просто использовать то, что там.