After selecting Amazon's S3 as the backup medium, a number of other factors were weighed and considered for implementation as a part of our backup solution. Here are some of the items that have made their way into the final design:

Application-specific components

Duplicate prevention. Previously, changing IMAP message flags would cause a new copy of a message to be stored on the system. Message and folder information is now stored separately. This allows search indexes to be rebuilt very quickly after restoration.

Message backup

Separation of backup job creation and backup job processing

Running backup jobs during off-peak hours and with low system resources to prevent potential load issues

Encryption using the high-trust AES-128 algorithm

Message restoration

Restore all mail folders for a user, or just restore a specific folder

Preview folder listings for any user inside the 14-day window for which backups are stored

Obtain simple message counts for any user or for any individual folder

Restore data to the original mailbox or to an alternate mailbox, as determined by the customer email administrator