Cache revalidation in Next.js with the Pages Router?
Interviewer Expectations for this Question
01
Core Competency
Assesses fundamental understanding of Next.js conventions, runtime behavior, and memory/performance considerations.
02
Evaluation Criteria
Hiring managers look for precision, avoidance of ambiguous jargon, and ability to explain trade-offs under real production conditions.
Comprehensive Model Answer
Verified Solution
Cache revalidation can be handled using the revalidate option in getStaticProps or by setting appropriate HTTP headers in API routes.
- Using
revalidate: Automatically revalidates static pages after a specified time.
export async function getStaticProps() {
const res = await fetch("https://api.example.com/data");
const data = await res.json();
return {
props: { data },
revalidate: 10, // Revalidate every 10 seconds
};
}
- Using HTTP Headers: Set cache control headers in API routes.
export default function handler(req, res) {
res.setHeader("Cache-Control", "s-maxage=10, stale-while-revalidate");
res.status(200).json({ message: "Revalidated response" });
}
Candidate Response Strategy & Interview Tips
- Start with a concise one-sentence summary: Deliver a direct, confident answer first before expanding into nuances.
- Demonstrate real-world trade-offs: Discuss where this approach excels and when you would avoid it in production systems.
- Discuss complexity & edge cases: Proactively explain time/space complexity or boundary conditions (null values, scale limits).
- Prepare for interviewer follow-ups: Technical hiring panels frequently probe deeper into concurrency, backward compatibility, or alternative libraries.