Aurora, AWS’s managed MySQL and PostgreSQL database service, is getting an undo feature. As the company announced today, the new Aurora Backtrack feature will allow developers to “turn back time.” For now, this only works for MySQL databases, though. Developers have to opt in to this feature and it only works for newly created database clusters or clusters that have been restored from backup.
The service does this by keeping a log of all transactions for a set amount of time (up to 72 hours). When things go bad after you dropped the wrong table in your production database, you simply pause your application and select the point in time that you want to go back to. Aurora will then pause the database, too, close all open connections and drop anything that hasn’t been committed yet, before rolling back to its state before the error occurred.
Being able to reverse transactions isn’t completely new, of course. Many a database system has implemented some version of this already, including MySQL, though they are often far more limited in scope compared to what AWS announced today.
As AWS Chief Evangelist Jeff Barr notes in today’s announcement, disaster recovery isn’t the only use case here. “I’m sure you can think of some creative and non-obvious use cases for this cool new feature,” he writes. “For example, you could use it to restore a test database after running a test that makes changes to the database. You can initiate the restoration from the API or the CLI, making it easy to integrate into your existing test framework.”
Aurora Backtrack is now available to all developers. It will cost about $0.012 per one million change records for databases hosted in the company’s U.S. regions, with slightly higher prices in Europe and Asia.