Amazon Interview Question: Design an email sender that c... | Glassdoor

Interview Question

Software Design Engineer Interview Seattle, WA

Design an email sender that can send 100,000,000 emails

 . You have 5 machines how could you do it efficiently.
programming, design

Interview Answer

3 Answers


Need to discuss where the performance bottlenecks are and how to mitigate them.

Interview Candidate on Mar 19, 2009

You could probably have your input application send messages to a clustered queue. There are 5 servers running on the 5 machines, each server with its own MDB. The MDB would then pick it up from the JMS queue and send it to the recipient. The queue depth of the intermediate queue should be sufficient enough to allow sufficient buffer so that you dont have to worry about your input program putting messages at a much faster rate than the MDBs can process.

Rajiv on Aug 21, 2010

use worker threads aka. Executors they have internal job queues that worker threads pick on. Provides high parallelism

dantepy on Apr 30, 2011

Add Answers or Comments

To comment on this, Sign In or Sign Up.