Pain: The more standard components are modified the more we cobble with upgrades. This doesn't confine to just major version changes but also to rollup changes.
Setting that apart reacting to certain table events like "delete" consistently becomes impossible. Somewhere a "dodelete" is invoked and consistency is lot, consequently resulting in mismanaged data.
Solution:A Table event notification system that can completely relied upon to receive the required notification when registered. No action is left uncaptured, be it a do_delete or an insert through the AIF. The notification system supported notifications for actions like delete, insert, update. This framework developed based on the command pattern can efficiently structure the design for other implementation classes also.
Pleasure:No more worries about upgrade except the functional tests carried out after upgrade. A very clean and structured development approach can be adopted based on this framework.