Очень много сленга.
Дело было давно и основывалось в основном на некотором количестве книг и PoC, когда статей уровня PT совсем не было.
То есть все затирают про сием отовсюду, но как работает внутри никто не писал.
В таких условиях в одно лицо трудно было что-то сделать.
До сих пор валяются наресёрченые со всего мира материалы на сием-тему
А ну про сленг, смотри:
Мое работало так:
1) Ты прописываешь цепочку из событий с желаемыми параметрами.
2) В БД в табличке инцидентс появляется строка с идентификатором события, ссылками на каждое событие которое составляет корреляционную цепочку и итоговый результат который равен количеству событий внутри цепочки.
3) Когда события прилетали поток обработчик (воркер) брал событие, сличал его по БД (да да, используя несколько селектов) с событиями которые были указаны как элементы инцидента и проверял за одно временный результат (скор) который набивался как «нашел событие которое явлется 1 событием цепочки этого инцидента - добавь балл, если видишь еще одно такое же - то проверь что смотришь именно в то событие. Иными словами если балл равен 1 то для конкретной цепочки не происходило сличение с первым событием цепочки для пришедшего события)
4) С такой незатейливой конструкцией воркер перебирал все поступившие события собирая своеобразное «бинго» при наборе которого он говорил «РЕБЯТА У НАС ИНЦИДЕНТ»