← Google Interview Insights

Google·Software Engineer·Onsite - System Design / Architecture·Senior

Senior
May 2026

Summary

System design round at Google, one question about blocking traffic from banned IPs sourced from an external security feed. Pretty focused scope but there's a lot hiding underneath it.

Questions Asked (1)

Q1

Design a system that denies service to requests originating from IP addresses flagged by an external security authority.

System DesignTechnical Trade-offsAPI & Integrations
Author's notes

I went straight to a blocklist cache sitting in front of the request path, which felt right, but I underestimated how much the interviewer wanted to dig into the sync mechanism.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then propose a layered architecture that ingests the external threat feed, caches it locally, and enforces denials at the edge with a fail-open strategy. Emphasize trade-offs between security, availability, and latency, and discuss how to handle feed staleness and false positives.

Pro tip: Proactively discuss fail-open vs. fail-closed behavior and the risk of false positives from the external authority; showing awareness of these trade-offs demonstrates production maturity.

1. Clarify Requirements and Scale

Ask about request volume, latency SLAs, feed update frequency, and whether denial should be global or per-service. Confirm the expected size of the blocklist and the impact of false positives.

2. Design Ingestion and Storage

Propose a pipeline to fetch the external feed periodically, validate and normalize IPs, and store them in a low-latency store like an in-memory cache or distributed cache (e.g., Redis) with TTL. Consider using a CDN or edge service for global distribution.

3. Enforcement at the Edge

Place the check at the outermost layer (load balancer, API gateway, or CDN) to reject requests early. Use efficient data structures (e.g., radix trees, bloom filters) for fast lookups and ensure the check adds minimal latency.

4. Handle Failures and Staleness

Decide on fail-open vs. fail-closed behavior if the feed or cache is unavailable. Implement TTLs and fallback to a stale copy to avoid outages. Monitor feed health and alert on anomalies.

5. Monitor, Audit, and Iterate

Log denied requests with reasons, track false positives, and provide a way to override or allowlist. Continuously evaluate the effectiveness and adjust the architecture as needed.

Key Points to Mention

  • Use of a distributed cache (e.g., Redis) or CDN edge for low-latency IP lookups at scale.
  • Fail-open vs. fail-closed trade-offs: availability vs. security, and the risk of false positives.
  • Efficient data structures like radix trees or bloom filters for fast IP matching.
  • Feed ingestion pipeline with validation, normalization, and periodic refresh.
  • Monitoring and alerting for feed staleness, false positives, and denial rates.
  • Layered defense: combine with rate limiting, WAF, and other security measures.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.