# Design an inventory management system: system design interview question

> Shared stock across warehouses and sales channels: concurrent reservations, reservation expiry, and correct stock counts.

Source: https://sysround.com/questions/design-inventory-management-system
Updated: 2026-11-05


Difficulty: hard. Levels: Senior, Staff+.

## How the interviewer opens it

"Design an inventory service for a retailer with several warehouses and sales channels. It must track stock and reserve items for customer purchases without overselling."

## What to clarify first

- Stock scale and location
- Traffic and read:write ratio
- Cart requirements
- Reservation lifetime
- Stock changes and sales channels
- Latency
- Consistency and availability
- Durability and retention
- Stock quantities
- Scope limits

## Scope of a strong answer

Core requirements:

- Track stock at each warehouse and show available quantities.
- Reserve all items in a cart across sales channels and warehouses.
- Confirm, release, or expire reservations without overselling.
- Record stock receipts and shipments without duplicate effects.

Usually out of scope:

- Process payments.
- Manage supplier purchases and returns.
- Choose delivery routes.
- Accept sales without contact with the inventory service.
- Support backorders.

## What interviewers probe

### Claims for the last units

Several channels can claim the same units simultaneously. A popular SKU can make many requests compete for one stock row.

### All-or-nothing carts

Available stock can span several warehouses. Competing channels can change those quantities before a cart obtains all its allocations.

### Reservation deadlines

Confirmation, release, and expiry can race. A late or duplicate request must not release confirmed stock or revive an expired hold.

### Repeated requests and events

Warehouse events can repeat, and failures can leave callers unsure about results. Incorrect recovery can create stock that does not exist.

## Common mistakes

- Trust cached availability when a reservation claims stock.
- Treat a global SKU total as proof that a warehouse can fulfill an order.
- Use the same quantity for physical stock, held stock, and confirmed stock.
- Assume a timeout means that the stock change failed.
- Release stock at expiry without checking whether confirmation already succeeded.
- Introduce independent stock shards before defining atomic cart behavior.

## The bar by level

- **Senior:** Makes cart reservations atomic across warehouses. Resolves confirmation and expiry races. Handles repeated warehouse events and uncertain results. Defines shipment completion and retention. Bounds contention for popular SKUs.
- **Staff+:** Defines authority across channels and failure boundaries. Explains how shards or regions change cart atomicity. Quantifies contention limits and storage from delayed shipments. Designs recovery that preserves existing stock claims.

Practice this question with an AI interviewer: https://sysround.com/practice/new?problem=inventory-management


---
SysRound (https://sysround.com) is an AI practice tool for system design interviews. It has a voice or typed AI interviewer and a shared whiteboard. At the end, you get feedback on each skill and a model answer. The AI feedback can be wrong.
