← eBay Interview Insights

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

SeniorPrefer not to say
May 2026

Summary

eBay system design round for a software engineer role. One big open-ended question about migrating an e-commerce service from a relational DB to DynamoDB, and they wanted the whole picture: schema analysis, data modeling, backfill, live traffic, validation, cutover, rollback, monitoring. A lot to cover in one session.

Questions Asked (1)

Q1

Design a production migration system that moves an existing e-commerce service from a relational database to DynamoDB with minimal downtime. Cover schema analysis, DynamoDB data modeling, historical backfill, capturing ongoing writes during migration, data validation, traffic cutover, rollback strategy, and monitoring.

System DesignData ModelingTechnical Trade-offs
Author's notes

This thing is basically eight questions stapled together and they expect you to connect them into a coherent design, not just rattle off each part separately.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and constraints, then walk through the migration in phases: analysis, dual-write, backfill, validation, cutover, and rollback. Emphasize DynamoDB data modeling (access patterns, partition/sort keys, GSIs) and how to handle ongoing writes with change data capture. Conclude with monitoring and rollback strategies to ensure minimal downtime.

Pro tip: Highlight the importance of idempotent writes and a rollback plan that includes a reverse migration path; this shows you think about failure modes and business continuity, which is critical for eBay-scale systems.

1. Analyze source schema and access patterns

Examine the relational schema, identify entities, relationships, and query patterns. Determine which tables need migration and how they are accessed by the application.

2. Design DynamoDB data model

Map relational entities to DynamoDB tables using access patterns. Choose partition and sort keys, design GSIs/LSIs, and consider denormalization and single-table design where appropriate.

3. Implement dual-write and backfill

Set up change data capture (CDC) from the relational database to capture ongoing writes and apply them to DynamoDB. Perform historical backfill in batches, ensuring idempotency and handling conflicts.

4. Validate data and cutover traffic

Run continuous data validation comparing source and target. Once consistent, gradually shift read/write traffic to DynamoDB using feature flags or canary deployments, monitoring for errors.

5. Monitor and rollback if needed

Implement comprehensive monitoring for latency, errors, and data consistency. Have a rollback plan to revert to the relational database if issues arise, including reversing dual-writes.

Key Points to Mention

  • DynamoDB data modeling: access patterns, partition/sort keys, GSIs, and denormalization
  • Change data capture (CDC) using tools like DynamoDB Streams or AWS DMS for ongoing writes
  • Historical backfill strategies: batching, parallelization, and idempotency
  • Data validation techniques: checksums, row counts, and sampling
  • Traffic cutover approaches: canary releases, feature flags, and gradual migration
  • Rollback strategy: maintaining dual-write capability and a reverse migration path

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