Offline-first

The durable upload queue, bounded by count, rebuilt rather than fatal, drained when the service is reachable.

Cloud NexusForge Persistence 0.2.0 Updated

A game that cannot upload must still be playable#

Uploads that could not be delivered are recorded in CloudSyncJournal, written atomically beside the saves:

csharp
await sync.QueueUploadAsync(slot);    // remember to upload later
await sync.DrainQueueAsync();         // on the next session, when the service is reachable
var state = await sync.GetStateAsync();  // what is outstanding, per slot
SettingDefaultMeaning
OfflineQueueEnabledonWhether undeliverable uploads are remembered
MaximumQueuedUploads32Bounds the queue

The journal is not a second source of truth#

It is a to-do list, not a copy of your saves. Losing it costs you an upload, not data: the save is already on disk, verified, and will be uploaded the next time a sync runs.

When MaximumQueuedUploads is reached, the oldest entry is dropped with a warning rather than letting the queue grow without limit. A warning is visible; a silently unbounded queue is not.

What "offline" means here#

ICloudTransport.LooksOnline is a hint. A transport that reports offline makes the framework queue instead of hammering a dead connection, and CloudRetryPolicy (4 attempts, 500 ms doubling to a 30 s ceiling, 10 % jitter) applies only to failures that are retryable — never to a refused precondition.

Next#

Something wrong on this page? Every page here describes behaviour that is checked in the repository. If a page and the package disagree, the package wins.

Report a documentation problem · Frequently asked questions · Troubleshooting