Oftentimes, embargoes are for a temporary new content state, e.g. promotion of a deal on the homepage until it expires. The expiry would be around this particular content version, and shouldn't unpublish the homepage when the expiry date hits. Instead, it should just restore the old version of the homepage.
There's two schools of thought:
Extend the existing data model with a version pointer (selectable in the UI, or defaulting to "previous version")
Refactor data model to apply a "timeline" of versioned records, where you can declare a particular version to be live in a given timeframe. This has been extensively discussed by Marcus and Hamish five years ago.
Oftentimes, embargoes are for a temporary new content state, e.g. promotion of a deal on the homepage until it expires. The expiry would be around this particular content version, and shouldn't unpublish the homepage when the expiry date hits. Instead, it should just restore the old version of the homepage.
There's two schools of thought: