Eventual Business Consistency
Another approach to this kind of thing would be storing most of your data as a log of events (&quot;event sourcing&quot;) and having &quot;Retroactive Address Change&quot; as its own business-process, one which can be linked to the other steps like sending a refund check or crediting an account.<p>In that architecture, the database-row will often remain plain and boring with just one &quot;current address.&quot; That &quot;projection&quot; (a result of events-so-far) would simply switch whenever the &quot;Retroactive Address Change&quot; event comes down the pipeline, which would be good enough for, say, the system that is sending out monthly statements.<p>Anybody needing more, like the exact history of changes and realizations, would be running their own processor and projection, scanning the event-stream in a way suitable to their specific use-case.