Jobs demonstrated a profound truth:
The best companies don’t just sell products; they sell experiences.
His approach was straightforward:
1. Concentrate on a select few products.
2. Strive for perfection.
3. Embrace innovative thinking.
Check out my latest article: Idempotency in Fintech: The Small Engineering Detail That Can Prevent Very Expensive Mistakes https://t.co/xinUTmTlRO via @LinkedIn
Every season ends.
The difficult one you are in will end.
The good one you are in will also end.
Endure the hard ones without despair.
Appreciate the good ones without clinging.
That is wisdom.
Check out my latest article: WhatsApp Business API Pricing Is Changing: What the New Charges Mean for Kenyan Businesses https://t.co/JXFVn4E4YZ via @LinkedIn
how does WhatsApp actually handle it? They use two core architecture principles: Lazy Deletion and Time-To-Live (TTL) storage.
Here is the breakdown of the system design:
1. The Illusion of Lazy Deletion -
Instead of actively deleting data at the exact 24-hour mark, you handle it on the read path. When a user uploads a status, stamp it with expires_at = NOW() + 24 hours.
When friends fetch the status feed, the API filters it: WHERE expires_at > NOW(). If the time has passed, the API ignores it. To the user, it has disappeared. Physically, it still exists in the database for a bit, but it costs zero performance to "hide" it.
2. NoSQL & Native TTL -
For metadata, leverage a distributed NoSQL database like Apache Cassandra or ScyllaDB. When writing the row, set a native 24-hour TTL. The database handles the cleanup under the hood during routine background compaction, bypassing the query engine entirely.
3. Cache Eviction -
Keep active statuses in a distributed cache like Redis. Set a hard expiration on the keys (EXPIRE key 86400). Redis evicts expired keys passively when accessed or via a background sampling algorithm at O(1) efficiency.
4. DB Partitioning (The Relational Alternative) -
If you must use a relational DB like PostgreSQL, partition your tables by day (e.g., status_2026_08_20). Instead of deleting billions of individual rows, you just drop the entire daily partition table after 48 hours. Dropping a table is an instantaneous file-system operation.
5. S3 Lifecycle Policies for Media
Do not let your application code touch the deletion of images and videos. Store them in Object Storage (like Amazon S3) and apply a Lifecycle Policy to automatically purge objects older than 25 hours.
The takeaway? At scale, the best way to delete data is often not to delete it at all just hide it, and let your infrastructure clean it up asynchronously.
No system is immune to failure.
Hardware fails.
Networks fail.
Databases fail.
Humans make mistakes.
Software has bugs.
The goal of fault tolerance isn’t to prevent failure.
It’s to keep the system useful when failure happens.
Here’s how you actually design for it:
Bruno Guimaraes off >> Declan Rice on
Myles Lewis Skelly off >> Zubimendi on
Martin Ødegaard off >> Eberechi Eze on
Kai Havertz off >> Viktor Gyökeres on
Calafiori off >> Piero Hincapie on
I can’t believe this is my life. Thank you Mikel Arteta for changing our poor lives!❤️