The following diagram illustrates the tedious manual process that users typically face when trying to preserve their game libraries:
sequenceDiagram
actor User
box transparent Game Provider
participant GameProviderAuth as Game Provider <br> Authentication Service
participant GameProviderLibrary as Game Provider Library
end
box transparent Backup Target
participant FileSystem as File System
end
loop for each Game Provider
User->>GameProviderAuth: Authenticate
GameProviderAuth-->>User: Provide access to Library
User->>GameProviderLibrary: Request list of owned Games
GameProviderLibrary-->>User: Return list of Games
loop For each Game
User->>GameProviderLibrary: Request list of Game Files
GameProviderLibrary-->>User: Return list of Game Files
loop For each Game File
User->>FileSystem: Check if Game File is already backed up
FileSystem-->>User: Return whether Game File already backed up
alt if Game File not backed up
User->>GameProviderLibrary: Request file download
GameProviderLibrary->>FileSystem: Stream file data
FileSystem-->>User: Confirm storage
User->>FileSystem: Verify file integrity
FileSystem-->>User: Return whether file not corrupted
end
end
end
end
This workflow includes several pain points:
- Manual tracking of already backed-up files
- Time-consuming file-by-file verification
- No automation of recurring tasks
Backity can transform this manual process into an automated workflow:
sequenceDiagram
actor User
participant Backity
box transparent Game Provider
participant GameProviderAuth as Game Provider <br> Authentication Service
participant GameProviderLibrary as Game Provider Library
end
box transparent Backup Target
participant FileSystem as File System
end
User->>Backity: Configure
loop for each Game Provider
User->>GameProviderAuth: Authenticate
GameProviderAuth-->>Backity: Provide access to Library
loop continuous
Backity->>GameProviderLibrary: Request list of owned Games
GameProviderLibrary-->>Backity: Return list of Games
loop For each Game
Backity->>GameProviderLibrary: Request list of Game Files
GameProviderLibrary-->>Backity: Return list of Game Files
loop For each Game File
Backity->>FileSystem: Check if Game File is already backed up
FileSystem-->>Backity: Return whether Game File already backed up
alt if Game File not backed up
Backity->>GameProviderLibrary: Request file download
GameProviderLibrary->>FileSystem: Stream file data
FileSystem-->>Backity: Confirm storage
Backity->>FileSystem: Verify file integrity
FileSystem-->>Backity: Return whether file not corrupted
end
end
end
end
end
Backity-->>User: Report backup outcome
At the same time, if complete automation is not desired, the user can manually choose which games or files they want backed up. The process then continues automatically.