All posts, RSS Feed

Building your game world takes a lot of time and effort. It doesn’t matter if you go at it alone or fill in the world together with the other players. The amount of time many of us spend on building, detailing, and writing our game worlds is staggering. And for some of us building our world is the best part of the game!

At RPGpad we take the time and creativity you put into your worlds very seriously, and we make daily backups of all campaigns to protect your work. In this post we’ll explain what makes them different from “normal” backups, when backups are made, and how long we store those backups.

RPGpad backups

In a sense, RPGpad itself is already a backup system. We already store every version of every single wiki page, forum post, character sheet, tag page, and anything else inside a campaign. Even the campaign configuration itself. The system also stores all versions of your account profile, as well as every single image ever uploaded.

There’s only a little bit of what we call “unversioned data”, an example of that is your password — which we cannot recover for you in any case since we only store the password hash.

When we have to use a backup, we want to be absolutely sure that we can access your campaigns stored in that backup. So, every backup we make also includes the a kind of finger print of the code RPGpad is running on at that moment. With it we can restore RPGpad’s systems to exactly what they were.

In every single backup we have:

  • The complete history of all campaigns, account profiles, and private messages.
  • All images ever used anywhere in the system.
  • The finger print of the code RPGpad was running at that moment.

Backup Strategy

Backups are automatically made every day, these are the so-called “dailies”.

Next to the dailies we also make a backup before any update to the system, we call these the “pre-deploy backups”. While we are confident that any changes we make won’t suddenly start destroying your campaigns, we make the backup anyway. We are only human, and humans sometimes make mistakes.

If we make updates to the system that also have to change some of the data to keep everything working smoothly — for example, the characters without sheets update had to fix the way the system accessed characters in the data — we make a second backup just after called the “post-deploy backup”.

Backup Testing

Just making backups is nice and easy. But to be confident that you are not just taking up disk space you have to test your backups and make sure that you can actually recover data from the backup.

As we want to make sure that all your hard work on your campaign is never lost, we test a sample of the new backups at least once a week. Testing all backups will cost us too much time, so we test at least one backup every week. Because the backup mechanisms do not change and are deliberately very simple this sample-based test is enough to determine the quality of the backups.

Backup Retention

The current backup storing plan is a two-stepped linear system. We keep two week’s worth of dailies, so that we can go back day-by-day for the last two weeks. After that, we store one backup (or pair of backup in case of a pre- and post-deploy pair) for each month for indefinitely.

Of course, we will eventually run into storage space problems with this method. At that point we will switch to a logarithmic backup system.

The idea behind the logarithmic backup system is that we want to have a lot of young backups available, but going back in time we need less and less backups per period. Remember, every backup contains the complete history of every campaign, so we really only need to go back to the older backups if something goes horribly wrong.

Now you know how we backup up your campaigns and how we make sure that we can always access those backups again if need be.

Of course, everybody that uses computers for any kind of task should be making backups of the things they care about. You are doing that, right? We would love to hear any tips you have for us, or other players, in the community forum!

As always, this week’s changelog is available for you as well.