Skip to content

ONE QUESTION. YOUR REASONING.

Design a distributed denylist

Design a distributed denylist: services around the world check each request’s user, IP address or email against a large list of blocked entries.

System designSearch and autocompleteSenior

YOUR BRIEF

What to work through

Work through a distributed denylist as a spoken system design interview. Start by clarifying the scope, sketch a working design and explain the trade-offs behind your choices.

  • Check whether a user, IP address or email is blocked, on every request
  • Add and remove entries, including lists fetched from external APIs
  • Apply a rule in one region only when it says so
  • Handle both IPv4 and IPv6 addresses

BEFORE YOU START

Constraints to discuss

  • Low latency: the check sits on every request path
  • Highly available
  • Updates reach every node around the world in near real time
  • Government-mandated blocks take effect where they apply
Need a starting point?

Watch for these common gaps as you prepare:

  • A database lookup on every request
  • A Bloom filter with no exact second check, so false positives block innocent requests
  • Forgetting that a plain Bloom filter cannot remove an entry
  • One entry per IP address, with no ranges, and no thought for IPv6
  • No versions, so a node cannot tell that its copy is stale
Read: System design questions and who asks them

Why this question is in the collection

These sources connect the problem to company interview reports or preparation guides. They do not guarantee what a company will ask you.

KEEP GOING

Your next question

Storage, files and linksDesign BitlyInfrastructure and platformDesign a rate limiterInfrastructure and platformDesign an A/B testing platformInfrastructure and platformDesign an ad click aggregator
Browse the collection
01

Pick a question

Read the brief and choose what you want to work on.

02

Talk it through

Explain your thinking. Respond to follow-ups. Draw when a design needs it.

03

Find your next improvement

Use the feedback from your interview to decide what to practise next.