How Zomato Engineers Habit Loops Using Event-Driven Push Infrastructure
A technical breakdown of how real-time event streams, state machines, and push orchestration turn user actions into predictable repeat behavior.

Most people think food delivery growth is driven by discounts.
It’s not.
It’s infrastructure.
Zomato doesn’t rely on users “remembering” to order. It builds event-driven systems that trigger behavior at the right moment.
This isn’t marketing automation.
It’s behavioral engineering powered by data pipelines.
Let’s break it down technically.
- The Core: Event-Driven Architecture
At the center of Zomato’s engagement system is an event stream.
Every user action becomes an event:
app_open
restaurant_view
add_to_cart
order_completed
session_inactive
no_order_7_days
no_order_14_days
These events are pushed into a processing layer (Kafka-like stream systems or cloud pub/sub equivalents), where they’re evaluated against predefined rules.
Instead of scheduled campaigns, the system reacts to state changes.
That’s the key difference.
Cron-based marketing says:
“Send campaign at 7 PM.”
Event-driven systems say:
“If user usually orders at 8 PM on Fridays and hasn’t opened the app today, trigger a personalized push at 7:45 PM.”
One is time-based. The other is behavior-based.
- State Machines, Not Static Lists
Each user exists in a dynamic state.
Example simplified state model:
Active (ordered in last 7 days)
Warm (7–14 days inactive)
At Risk (14–30 days)
Dormant (30+ days)
Transitions between states trigger actions.
When a user moves from Active → Warm, the system doesn’t wait for churn. It fires:
A cuisine-based recommendation
A small incentive
A context-aware reminder
This is silent churn interception.
Technically, it’s just state evaluation + rule execution.
Strategically, it’s revenue protection.
- Segmentation at the Data Layer
Segmentation isn’t manual.
It’s derived from:
Preferred cuisine clusters
Average order value
City density data
Order time distribution
Device behavior
Discount sensitivity
Each user has a behavioral profile.
Push payloads are constructed dynamically:
{ "user_id": 18273, "trigger": "inactive_10_days", "preferred_cuisine": "Biryani", "avg_order_time": "20:00", "coupon_value": 125 }
The notification isn’t broadcasted.
It’s assembled.
That’s why it feels personal.
- Timing Optimization Layer
Timing is modeled using historical interaction data.
If a user’s highest open probability window is:
Fridays 7:30–8:30 PM
The system schedules within that band.
This requires:
Open rate prediction modeling
Time-series engagement tracking
Continuous feedback loop updates
Every interaction improves the next push.
Over time, the system optimizes toward habit formation.
- Why This Works So Well
Habit loops follow a simple structure:
Trigger → Action → Reward → Reinforcement
Push notifications act as external triggers.
Repeated exposure at predictable behavioral windows turns ordering into a routine.
No billboard required. No viral campaign required.
Just structured, repeated nudges.
- Why Most DTC Brands Can’t Replicate This
The limitation isn’t creativity.
It’s channel control.
Email:
Delayed
Inbox competition
Deliverability constraints
SMS:
High friction
Regulatory overhead
Social:
Algorithm dependent
Event-driven push infrastructure requires native mobile apps because:
Permission is explicit
Delivery is immediate
Context is persistent
Behavioral tracking is granular
Without a persistent app layer, you can’t build real-time behavioral triggers.
You’re stuck with campaign-based marketing.
- Infrastructure > Campaigns
Zomato’s advantage isn’t better copy.
It’s:
Real-time event ingestion
Stateful user modeling
Trigger-based execution
Continuous behavioral feedback
They didn’t scale ads.
They scaled habit.
Final Thought
If you look at Zomato purely as a food delivery company, you miss the point.
It’s a real-time behavioral system wrapped in a consumer interface.
The brands that win in the next decade won’t be the loudest.
They’ll be the ones who control their engagement infrastructure.
Because in event-driven systems, revenue isn’t hoped for.
It’s triggered.



