Oder ich würde drüber nachdenken, die Änderung nur genau dann zu verteilen, wenn sie tatsächlich anfällt. Beispielsweise könnte ein Agent im NAB, der bei neuen und geänderten Dokumenten gestartet wird, die Änderungen in die weitere Datenbank pushen.
Eine weitere Alternative wäre ein Abgleich mit einem periodischen Agenten, der die Änderungen aus dem NAB in deine Datenbank übernimmt.
Eine dritte Möglichkeit, die mir einfällt, aber die wohl die aufwendigste sein könnte und sich wohl nur lohnt, wenn du die Daten in mehreren Datenbanken benötigst, ist eine Art agentenbasiertes Observerpattern:
Im NAB gibt es einen Agenten, der auf Änderungen reagiert. Dieser Agent bekommt über eine Art Konfiguration Datenbanken als Observer registriert. In den beobachtenden Datenbanken gibt es nun weitere Agenten, die die Änderungen jeweils datenbankspezifisch verarbeiten können. Bei einer Änderung startet nun der Agent im NAB (das "Subject" in der Sprache des Design Pattern Buches der GOF) und benachrichtigt alle registrierten Observer, in dem er die Verarbeitungsagenten startet. Wahrscheinlich lässt sich das aber sogar so realisieren, dass bestehende Designelemente des Directory unangetastet bleiben. Vielleicht gibt ja jemand noch ein Statement zu diesem Vorschlag ab.