Sind Staging-Tabellen ein Anti-Muster, das verwendet wird, wenn rpc (wie Java RMI oder eine Art von Web-Service-Aufruf) oder Messaging-Queue (wie JMS) eine bessere Lösung wäre, oder gibt es Probleme, die durch Staging-Tabellen besser gelöst werden?
Zur Klarstellung:
Unter Staging-Tabellen verstehe ich die Fälle, in denen Datensätze von einem Prozess an eine oder mehrere Tabellen angehängt werden, die dann von einem oder mehreren anderen Prozessen gelesen und bearbeitet werden. Ich beziehe mich nicht auf Tabellen, die den Status am Ende eines Intervalls widerspiegeln sollen (Ende des Tages, Ende des Lohnzeitraums usw.). In den meisten Fällen ist das Schema der Staging-Tabellen eng an die Datentypen der Anwendung angelehnt, wie z. B. Kunden oder Konten.
Mögliche Ursachen für dieses Anti-Muster:
1) Business Unit Wall zwischen den Eigentümern der beiden Prozesse verhindert, dass der Prozess, der in das Staging schreibt oder aus dem Staging liest, geändert wird.
2) Geringes Vertrauen in den Prozess, der in das Staging-System schreibt oder von dort liest, veranlasst die Entwickler, eine Tabelle zu verwenden, um Datenverluste zu vermeiden, "falls etwas schiefgeht".
3) Mangelnde Kenntnisse oder DGAS-Einstellung (don't give a ^%$@)