I’m building a local-first application, and I’m increasingly convinced SDKs should expose a standard, testable “network unavailable” contract instead of making every application team invent one. At minimum, that contract should say whether reads come from cache, whether writes are queued durably, what happens after a restart, how conflicts are resolved, and which failures the UI can distinguish.
“Graceful degradation” is often advertised as a feature, but in developer tooling it can feel like an afterthought. Firebase and Firestore demonstrate very different useful behaviors, while ordinary retrying clients are not offline-first systems. The more guarantees an SDK makes, the more storage, synchronization, security, and maintenance complexity its authors inherit, so I don’t think this is free.
Has anyone adopted an offline-behavior test suite, or would you still prefer explicit application-level control over these semantics?