← Whatnot Interview Insights

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

Senior
May 2026

Summary

System design round at Whatnot for a software engineer role. The question centered on building a charity donation platform with third-party payment integration, and the interviewer kept steering the conversation back toward async processing and message queues specifically.

Questions Asked (1)

Q1

Design a charity donation website that integrates with a third-party payment vendor to process donations. Focus on how you'd handle asynchronous processing and message queues.

System DesignAPI & IntegrationsTechnical Trade-offs
Author's notes

I started with the usual stuff, API gateway, service breakdown, how you'd call out to the payment vendor.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then design the core donation flow with synchronous payment processing and asynchronous post-payment tasks. Focus on how message queues decouple services, ensure reliability, and handle failures. Discuss trade-offs between consistency, latency, and complexity.

Pro tip: Emphasize idempotency and exactly-once processing with the payment vendor, as duplicate charges or missed donations are critical failures. Also, mention monitoring and alerting for queue depth and dead-letter queues to catch issues early.

1. Clarify Requirements and Scale

Ask about expected traffic, payment vendor API limits, and consistency needs (e.g., at-least-once vs exactly-once). Define functional and non-functional requirements.

2. High-Level Architecture

Sketch components: web frontend, API gateway, donation service, payment service, message queue, database, and notification service. Show data flow for a donation.

3. Asynchronous Processing with Queues

Explain how to use a message queue (e.g., RabbitMQ, Kafka, SQS) to decouple payment processing from post-payment tasks like receipts, thank-you emails, and analytics. Discuss queue types (work queues, pub/sub) and delivery guarantees.

4. Reliability and Error Handling

Describe idempotency keys, retries with exponential backoff, dead-letter queues, and compensating transactions. Ensure exactly-once processing with the payment vendor.

5. Trade-offs and Scalability

Discuss trade-offs: sync vs async, consistency vs availability, and queue technology choices. Explain how to scale consumers and handle backpressure.

Key Points to Mention

  • Idempotency keys to prevent duplicate charges and ensure exactly-once processing with the payment vendor.
  • Message queue selection (e.g., Kafka for high throughput, SQS for simplicity) and delivery semantics (at-least-once, exactly-once).
  • Dead-letter queues and retry policies for handling failed payment or post-payment tasks.
  • Database transactions and outbox pattern to atomically update state and enqueue messages.
  • Monitoring and alerting on queue depth, processing latency, and error rates.
  • Security considerations: PCI compliance, tokenization of payment details, and secure API communication.

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