1. What is happening (core idea)
When you post a story:
- Instagram saves the time you posted it
- Then it has a rule: show only for 24 hours
- So it never "counts time" ā it just compares times.
2. Like you're 5 years old
Imagine:
You put a sticker on a board at 10 AM
The rule is: "remove it after 1 day"
Now whenever someone looks at the board:
- If sticker is less than 1 day old ā show it
- If older ā don't show it
Nobody is counting seconds. They just check the time.
3. Engineer-level (simple version)
When story is uploaded:
Server stores:
created_at = time of upload
When feed is requested:
Server runs a filter:
if (now - created_at < 24 hours) {
return story;
}
So:
š Only fresh stories are returned
š Old stories are automatically ignored
4. Important clarification
"The mobile app doesn't decide anything"
Meaning:
Your phone is NOT responsible for hiding stories
Instagram server decides everything
So even if you change your phone time ā nothing changes
5. What is cleanup job?
After stories expire:
- They are already hidden instantly
- Later, a background system deletes them permanently
Think of it like:
"First hide the item from shop shelf, then later throw it away from storage."
6. Why these design choices exist
- Server-side control ā prevents cheating
- UTC time ā same for all countries
- No device dependency ā consistent for everyone
- Lazy deletion ā saves system resources
One-line interview answer
"Instagram stories expire using server-side TTL based on created_at timestamp; the backend filters out items older than 24 hours during feed queries, and later background jobs clean up expired data."
Written by Kashaf Abdullah
Software Engineer | MERN Stack | Web Development
Found this helpful? Leave a ā¤ļø and bookmark it for later!
Top comments (0)