It provides a clear and practical framework for distinguishing between critical and non-critical system tasks. However, it oversimplifies the architectural complexity of real-world distributed systems for the sake of brevity.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
Amazon Checkout System Design Explained in 2 MinutesIndexed:
Ever wondered what really happens when you click "Place Order" on Amazon? In this short, we break down the classic system design problem of handling 6 background jobs — payment, inventory hold, order save, confirmation email, warehouse notification, and recommendation update. We compare Option A (synchronous execution) vs Option B (async with background queues) and discuss the real engineering question: what MUST finish before showing "Order Placed," and what can run later safely? Drop your approach in the comments. Perfect for system design interview prep, backend engineers, and anyone learning distributed systems. #SystemDesign #SoftwareArchitecture #EcommerceTech #Microservices #BackendDevelopment #AsynchronousProcessing #MessageQueues #DevOps #TechTips #Programming #Scalability #CloudNative
Today, I want your opinion on famous system design problem.
Let's consider an Amazon style online shopping system.
You add all the items you need in the cart and then click place order and the website confirms if your order is placed.
Behind that place order button, the system has to finish six different jobs.
First, it has to charge your credit card. Then, hold the item in the warehouse so nobody else buys the last one.
Next, we save this order to the database.
Fourth task is to send a confirmation email.
Fifth is to tell the warehouse what product needs to be shipped. And the last one is to update your product recommendations so that we can suggest similar or related items next time.
The question is, how do you arrange those six jobs?
Option A is to do them all in a single line, one after another.
First, we charge the card, then reserve the item, then save the order to database, then send the email, then notify the warehouse, then update recommendations.
The website only says order placed after every single step finishes.
The problem is that it takes significantly more time for user to see the confirmation on website.
For example, if it takes 200 milliseconds for payment, 150 milliseconds to reserve items and so on, then we are looking at a 1 and 1/2 second wait every time someone clicks that button.
And if any single step breaks, let's say the email service is having a bad day, the whole thing fails and user will see an error on website.
But the truth is that some of the steps might have already succeeded. The payment may have already gone through.
The order may already have been saved.
Therefore, the customer is charged but doesn't know if their order worked because website shows error and customer tries to place the order again.
Now you've got duplicate orders to clean up.
Option B is a little smarter.
We only do the must finish jobs in line like charging the card and saving the order.
The user sees order placed once these must finish jobs are done.
Everything else like sending the email, the warehouse notification, and product recommendations gets pushed onto a background job queue.
Then background programs pick these jobs up and finish them when they can.
This is much faster for the user.
But here's the issue.
One day, the background program that sends emails just stops working.
The customer saw order placed on the website, but never gets a confirmation email.
So, they start calling support asking, "Did my order actually go through?"
And you don't even notice the email program is broken until the support tickets start piling up.
Now, the real question isn't about do everything at once or do some things later.
The question is, what absolutely must finish before you can honestly tell the user that your order is placed?
And which tasks can actually happen later safely as long as they eventually gets done?
Let me know your thoughts in comment section.
Related Videos
Ubuntu Touch Q&A 190
UBports
241 views•2026-05-17
Learning k8s ep. 3 - The end of the VM
devcentral
102 views•2026-05-15
Iterators and Generators: Real Use Cases
jsmentor-uk
188 views•2026-05-17
TCS NQT Coding Questions Solution (One Shot) | TCS NQT Preparation 2027 | TCS Actual PYQ 2026
knacademy20
2K views•2026-05-17
The 4 Bit AI Training Trick
explaquiz
414 views•2026-05-19
Image to 3D World Workflow 👀
badxstudio
843 views•2026-05-16
Why Learn Algorithms in the AI Era
bitsandproofs
245 views•2026-05-17
NFA - Transition Diagram and Transition Table
nesoacademy
198 views•2026-05-19











