You want to extend an order tracking state machine to handle a 'return' event after delivery. Which design change is best?
hard📝 Trade-off Q8 of 15
LLD - Design — Food Delivery System
You want to extend an order tracking state machine to handle a 'return' event after delivery. Which design change is best?
AAdd a 'returned' state and allow transition from 'delivered' to 'returned'
BReplace 'delivered' state with 'returned' directly
CAllow transition from 'placed' to 'returned' without delivery
DRemove 'delivered' state and add 'returned' as initial state
Step-by-Step Solution
Solution:
Step 1: Understand order lifecycle
Orders are delivered before they can be returned, so 'returned' must come after 'delivered'.
Step 2: Choose design that adds 'returned' state properly
Add a 'returned' state and allow transition from 'delivered' to 'returned' adds 'returned' state with valid transition from 'delivered', preserving lifecycle integrity.
Final Answer:
Add a 'returned' state and allow transition from 'delivered' to 'returned' -> Option A
Quick Check:
Extend state machine with valid new state [OK]
Quick Trick:Add new states with valid transitions only [OK]
Common Mistakes:
Skipping required intermediate states
Replacing existing states incorrectly
Allowing invalid transitions
Master "Design — Food Delivery System" in LLD
9 interactive learning modes - each teaches the same concept differently