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.
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.
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.
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.
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).
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 ContinueJoin thousands of developers preparing for their dream job.