Design offline-first edge systems with sync, conflict handling, and weak-network resilience.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "system-type-edge-offline" skill from askskill: 1. Download https://raw.githubusercontent.com/microsoft/amplifier-bundle-systems-design/main/skills/system-type-edge-offline/SKILL.md 2. Save it as ~/.claude/skills/system-type-edge-offline/SKILL.md 3. Reload skills and tell me it's ready
Design an offline-first architecture for a field inspection mobile app. Focus on local data storage, operation queues during disconnection, sync protocols after reconnection, conflict resolution strategies, and common failure modes with recovery mechanisms.
An offline-first system design plan with architecture, sync flow, conflict handling, and fault-tolerance recommendations.
Evaluate the sync approach for an IoT edge device system with intermittent connectivity, constrained resources, and long offline periods. Analyze data sync, consistency trade-offs under partition, conflict resolution, retry mechanisms, and recovery after device failures.
A technical evaluation for the edge device system highlighting risks, trade-offs, and optimization recommendations.
Create a test checklist for a business system that must work offline. Cover disconnection, frequent reconnection, duplicate submissions, clock drift, limited device storage, sync conflicts, and exception recovery, then assign priorities.
A prioritized test checklist for offline and weak-network system scenarios.
Patterns, failure modes, and anti-patterns for systems that operate under intermittent connectivity and constrained resources.
The fundamental assumption shift: the network is not a dependency — it is an optimization. An offline-first system is fully functional without connectivity and becomes better when connectivity is available. This is the opposite of how most systems are built, where the server is the source of truth and the client is a thin rendering layer that breaks the moment the network disappears.
| Model | Description | Network requirement | Complexity | Example |
|---|---|---|---|---|
| Online-only | Server renders everything. Client is a viewport. | Continuous | Lowest | Traditional server-rendered web apps |
| Offline-tolerant | Works online, degrades gracefully offline. Shows cached data, queues writes. | Expected, with brief gaps | Low-medium | Gmail offline mode, Google Maps cached areas |
| Offline-first | Full functionality offline. Sync when connected. Network enhances, does not enable. | Optional, intermittent | High | Notion mobile, Field Service apps, CouchDB/PouchDB apps |
| Local-only | No server component. Data lives entirely on device. | None | Low (no sync) | Local note apps, single-player games, calculators |
| Local-first | Local-only experience with optional peer or cloud sync. User owns the data. | Optional, for collaboration | Highest | Automerge-based apps, Obsidian with sync, Linear's local model |
Most teams think they're building "offline-tolerant" but their users need "offline-first." The gap between those two is enormous — it's the difference between showing a spinner with "waiting for connection" and letting the user do their entire job on an airplane.
Local-first means the device has a complete, usable copy of the data the user needs. Not a cache — a replica. The distinction matters:
Design consequences of treating the device as a replica:
| Technology | Platform | Max storage | Strengths | Weaknesses |
|---|---|---|---|---|
| SQLite | iOS, Android, Desktop, WASM | Device storage | Full SQL, ACID transactions, mature tooling, single-file database | No built-in sync, schema migrations need care |
| IndexedDB | Web browsers | Varies (typically 50%+ of disk) | Async, transactional, structured data, available in service workers | Terrible API ergonomics (use a wrapper like Dexie.js), no SQL, browser eviction policies |
| Realm | iOS, Android, Web (partial) | Device storage | Object-oriented, live objects, built-in sync (MongoDB Atlas), reactive | Vendor lock-in to MongoDB ecosystem, schema constraints |
| Core Data | iOS, macOS | Device storage | Deep OS integration, CloudKit sync built-in | Apple-only, complex concurrency model, opaque conflict resolution |
| OPFS (Origin Private File System) | Web browsers | Varies | Fast synchronous file access in workers, good for WASM-based SQLite | Limited browser support, no structured query without SQLite on top |
…
Review system designs with a seven-step method to surface risks and improvements.
Evaluate system designs through Unix/Linux principles for simplicity and composability.
Design or assess Azure system architectures, operations, and cloud service choices.
Design and evaluate data pipelines, streaming systems, and ETL architecture patterns.
Design and assess multi-tenant SaaS architecture, isolation, billing, and resilience.
Design and assess enterprise integration patterns, legacy modernization, and orchestration strategies.
Design and evaluate real-time collaborative systems, sync flows, and failure handling.
Design or assess SPA architecture across routing, state, performance, and offline support.
Design and evaluate CLI tools and developer SDK architecture and usability.
Design and evaluate decentralized peer-to-peer architectures and core system mechanisms.
Design and evaluate event-driven, message-based, and asynchronous system architectures.
Design or evaluate web services, APIs, scalability, and reliability tradeoffs.