1. Создать базу данных, которая содержит описание всех мыслимых событий и реакций на них (мегабайт, так, на 30, а лучше - 300, а еще лучше, если не мегабайт, а гигабайт.) База после создания индексируется, запаковывается, шифруется, и во время работы софта постоянно на лету сканится, и все события проверяются на соответствие условий. В смысле, в цикле, бесконечном, со скоростью работы процессора, и пофиг, что его перестало хватать еще тогда, когда база была по размеру в 10 раз меньше.
2. Вписать в конфиг/скрипт обработчика исключительных событий, который дергается только тогда, когда происходит это самое исключительное событие.
Вот угадайте, какова будет реакция:
a) держателя софта для распаковки/упаковки базы (условием, что после каждой такой операции надо будет руками еще править пару сотен тысяч связей)
б) публики
на предложение пойти по второму варианту ?