Knowing the names isn't the signal. Naming which failure mode you're willing to accept, and why, is what separates a candidate who's memorized patterns from one who's thought through the system.
Every cache eventually lies. The moment data lands in memory, it starts drifting from the source of truth. The question isn't whether to invalidate, it's which failure mode you're willing to accept.
Cache invalidation is famously hard, and you've added a new failure surface. The speed gain is real, but so is the operational cost. That tradeoff is what makes caching a deliberate choice, not a default.
A cache like Redis sits between your app and your database, serving repeated reads from memory with no disk access. That's the difference between ~1ms and ~50ms per read. The tradeoff is you're now responsible for keeping that data consistent.
Read replicas and Redis both reduce load on your primary database. They're not interchangeable. They operate at different layers, and picking the wrong one for your bottleneck is a common system design mistake.
Jump Game II looks like a DP problem. Choices at every step, a minimum to optimize, overlapping subproblems. It's greedy, and the reason why is worth understanding.
355 Followers 593 FollowingSurviving as Software Engineer and Father of Twins. Now: Ocado Technology. Previously: New Relic, https://t.co/rAyR7YbDKQ @[email protected]
7K Followers 535 FollowingAI & Tech Hunter | #JavaScript Alchemist | Professional Overthinker | #Guinness Lover | Show ‘em how the struggle made magic. جنوبیام
1K Followers 903 FollowingBuilder. Older than all dogs. Creating: Hello Interview. Sold 2 startups, failed 1, ready for more. Previously ML eng leader FB, AMZN.