MATTHEWLAB
Building products

A rollback button is not a recovery plan.

Application code, database state, and uploaded files can travel back to different points in time. Make the boundary explicit.

A deployment lever and a separate data drawer illustrating different recovery boundaries.

A deployment tool offers a reassuring button: roll back. Before relying on it, ask which thing moves backward. The application version, database contents, uploaded files, and runtime configuration may have different recovery paths.

Write down the combinations

Take a hypothetical notes app. Version one stores a title and a body. Version two introduces an archived state. After deploying version two, you discover a problem and return to the earlier application.

Can version one read the data that version two already wrote? It might ignore the new field, reject the record, or display an unexpected subset. The answer depends on the implementation. The fact that old code starts successfully does not settle it.

ApplicationData stateQuestion to test
Previous versionBefore migrationDoes normal reading still work?
Previous versionAfter migrationCan it interpret new records?
Current versionRestored backupAre records and files consistent?

This table is a planning example, not a record of a completed restore.

Choose a recoverable point in time

A database backup and a file backup taken at different times can leave records pointing to attachments that are absent. Define which data, files, and configuration must be restored together.

Recovery features also have product-specific behavior. Amazon RDS point-in-time recovery, for example, creates a new DB instance rather than modifying the source instance. That still leaves application reconnection and end-to-end validation to plan.

Practice on a bounded example

Use non-sensitive test data to rehearse the intended path. After restoration, check reading, writing, attachments, and permissions. Record the backup identity, procedure version, and checks that passed.

If the test uses a tiny data set, preserve that limitation. A quick rehearsal does not establish a production recovery time. Measure the larger case before promising one.

한국어 글: 코드는 롤백했는데, 데이터는 어떻게 되는 걸까