Transactional / OOD• Patterns: Strategy, Observer
Inventory System
Hard
Problem Summary
Design a warehouse inventory system tracking stock levels, processing order picks, and alerting low stock events.
Functional Scope
- Track quantities of products across different warehouse layouts.
- Reserve stock immediately during checkout.
- Trigger notifications to suppliers once inventory falls below a threshold.
Entity-Relationship (ER) Schema
Warehouse [1] <---> [*] InventoryItem InventoryItem [1] <---> [1] StockLevel Order [1] <---> [*] OrderItem
Design Approach
Apply pessimistic locks to individual inventory SKU rows to prevent transaction race conditions during popular flash sales.
Core Classes & Models
ProductItem (Item details, sku)StockLevel (Quantity available, reserved counts)Order (List of items, packing status)Warehouse (Locations, replenishment policy)
Code Blueprint
public class InventoryItem {
private int quantity;
public synchronized boolean reserve(int count) { return true; }
}