A developer posts a detailed retrospective on enforcing a “Live / Snapshot / Cache” data classification rule across an ERP-like project over about two months. They describe three earlier “saves” where the rule prevented issues: (1) rejecting a retroactive pricing recalculation by treating an enrollment price field as Snapshot history, (2) blocking a migration-added derived column intended as a cache but lacking an explicit refresh mechanism, and (3) choosing a database view (Live computation) instead of storing an aggregate when query frequency and performance made recalculation acceptable.

The main incident occurs on Tuesday May 19 during an SMS re-enrollment campaign. Before sending, a pre-flight token check finds one contact whose token has a non-null used_at value because a test funnel consumed it earlier the same morning. Sending would produce an HTTP 410 Gone response, so they hold the send and fix the token state. They identify the underlying bug as a “resurrection” helper that returns an existing token object without resetting the Live marker used_at, even though other fields (id, short_code, contact_id) are treated as Snapshot. A follow-up commit updates used_at to NULL within the same transaction when reusing an existing token, and the team extends the rule with a hybrid reset pattern in the project toolkit v0.7.