Amazon | HLD | Update Mars Rover

Problem Statement: Design a system which would send an update file (whenever available) to a rover on Mars.

Functional Requirements: The only functional requirement specified was the problem statement!

Non Functional Requirements: None!

Approach: With the vagueness of the question, the discussion moved towards mechanisms to send this update file to the rover. Discussion involved the following points.

  • Mentioned the push and pull model.
  • Discussed chunking the file due to low bandwidth
  • Explored retry mechanisms in case the rover is missing a chunk(s).
  • Devised ways to detect corruption during transimission.
  • Discussed scenarios where the update may have bugs, including one where the rover would not be able to communicate with the Earth.
  • Weighed checksum per chunk vs checksum per file with a specified error rate, keeping in mind the low bandwidth.
Comments (5)