The situation
Nutricook is a Gulf kitchen appliance brand with a loyal customer base and a penchant for aggressive promotional campaigns. Their e-commerce store needs to handle the kind of traffic that comes when a promotion drops: hundreds of customers hitting checkout simultaneously, orders triggering payment processing, shipping lookups, inventory deductions, confirmation emails, and report exports all at once. The original architecture handled this poorly. Every one of those downstream operations — payment gateway call, shipping API lookup, email send — happened synchronously inside the HTTP request. Under normal load, it was fine. Under a promo launch, checkout times climbed to 8–12 seconds. Cart abandonment spiked. Revenue was lost during the exact moments they'd invested in driving traffic. We rebuilt the checkout architecture around one principle: the HTTP response should never wait for anything that doesn't need to happen before the customer sees their confirmation. Payment confirmation: synchronous. Everything else: queued. Order processing, shipping label generation, inventory sync, email delivery, and analytics export all became background jobs. The checkout endpoint now returns a confirmation in under 300ms unconditionally. Background workers handle everything else with retry guarantees.
What had to change
Flash sale traffic caused checkout response times to spike to 8–12 seconds. The culprit was a synchronous architecture where every post-order operation — payment confirmation, shipping lookup, email send, inventory deduction — blocked the HTTP response. Customers sat on a loading screen and left.
What we changed
Rebuilt checkout with a clear sync/async boundary: only payment confirmation blocks the response. Everything downstream — shipping, email, inventory, analytics — is queued. Background workers process jobs with retry logic and dead-letter queues for failures. Promo traffic now goes through without customers noticing any pressure on the system.
What the client gained
- 01 Checkout always under 300ms — queue architecture
- 02 Flash sale traffic handled without degradation
- 03 Secure REST APIs for payment & 3 regional gateways
- 04 Report exports via background jobs — never blocks UI