← Amazon Interview Insights

Amazon·Software Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
Apr 2026

Summary

Amazon system design round, one question about syncing reading progress across Kindle devices. Pretty open-ended and I wasn't totally sure how deep to go on the infrastructure side versus the product side.

Questions Asked (1)

Q1

Design a protocol for syncing reading progress and bookmarks across multiple Kindle devices in real time.

System DesignTechnical Trade-offsAPI & Integrations
Author's notes

I started with the obvious stuff, last-write-wins conflict resolution, a central sync service, device polling intervals.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements (real-time latency, conflict resolution, offline support) and scale. Then design a client-server architecture with a sync service, using WebSockets for real-time push and a conflict-free data model (e.g., last-write-wins with versioning or CRDTs). Finally, discuss trade-offs around consistency, latency, and battery life.

Pro tip: Emphasize the importance of handling offline scenarios and conflict resolution gracefully, as Kindle users often read in airplane mode. Mention that Amazon's Whispersync already solves this, but propose improvements like using CRDTs for better merge semantics.

1. Clarify Requirements

Ask about expected latency (real-time vs near-real-time), number of devices per user, offline support, and conflict resolution needs. Confirm scale (millions of users, billions of devices).

2. High-Level Architecture

Propose a client-server model with a sync service that stores user progress and bookmarks. Clients connect via WebSockets for real-time updates, with fallback to long polling or push notifications.

3. Data Model and Conflict Resolution

Design a data model with versioning (e.g., vector clocks or timestamps) and choose a conflict resolution strategy like last-write-wins or CRDTs. Discuss how to handle concurrent updates from multiple devices.

4. Sync Protocol Details

Define message formats for updates (e.g., JSON over WebSocket), include device ID, timestamp, and position. Describe how the server broadcasts updates to other devices and how clients apply them.

5. Trade-offs and Scalability

Discuss trade-offs: real-time vs battery life, consistency vs availability. Address scalability with sharding by user ID, caching, and using a pub/sub system like Kafka or SNS.

Key Points to Mention

  • Real-time communication using WebSockets or server-sent events
  • Conflict resolution strategies (last-write-wins, CRDTs, vector clocks)
  • Offline support and eventual consistency
  • Data model for reading progress (book ID, position, timestamp) and bookmarks
  • Scalability considerations: sharding, pub/sub, caching
  • Security and authentication (user identity, device registration)

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.