Mobile System Architecture and Offline-First Design Questions

Architecting the mobile side of a distributed system: client-server sync, offline-first storage and conflict resolution, background processing, push notifications, and modular mobile architecture at scale. Covers syncing state across intermittent connectivity and designing backends for millions of mobile clients. The mobile-specific slice of distributed design.

EasyTechnical
76 practiced

Explain why stateless service design helps scale mobile backends. Describe the role of load balancers, autoscaling groups, health checks, and one example of a stateful component (e.g., WebSocket server) you would isolate and how you'd manage it.

MediumTechnical
74 practiced

In Kotlin, implement a thread-safe in-memory LRU cache class for Bitmaps with a configurable maximum size in bytes. API should include get(key), put(key, bitmap, sizeInBytes), and automatic eviction of least-recently-used entries until total size is below the limit. Operations must be O(1). Provide the class structure, key data structures used (LinkedHashMap or custom doubly-linked list + hashmap), and note concurrency considerations.

HardTechnical
91 practiced

Propose a synchronization protocol that preserves causality on mobile clients while minimizing per-device metadata. Describe possible techniques such as compact vector clocks, dotted-version-vectors, grouping devices, or hybrid logical clocks. Discuss accuracy, metadata size, pruning, and merge complexity trade-offs.

EasyTechnical
99 practiced

List and compare common client-side storage options available to mobile developers on iOS and Android (e.g., SQLite, Core Data, Room, Realm, LevelDB, Keychain/Keystore, SharedPreferences/DataStore). For each option, state typical use cases, strengths/weaknesses for offline-first apps, and platform-specific caveats (migrations, background access, encryption).

MediumTechnical
156 practiced

Design a distributed rate-limiting and throttling system for notifications that enforces per-user, per-app, and global limits. Explain token-bucket or leaky-bucket options, approximate window algorithms (sliding-window counters), how to implement at scale (local caches + central coordination), and graceful degradation/user-facing behaviors when throttled.

Unlock Full Question Bank

Get access to all Mobile System Architecture and Offline-First Design interview questions and detailed answers.

Sign in to Continue

Join thousands of developers preparing for their dream job.