PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/LinkedIn

Design a malicious-URL checking service using an isMalicious API

Last updated: Mar 29, 2026

Quick Overview

This question evaluates system design competencies such as scalable API design, caching and cache invalidation strategies, rate limiting and backpressure, fault tolerance and circuit-breaking, data modeling for reputation storage, partitioning, and operational metrics for reliability.

  • medium
  • LinkedIn
  • System Design
  • Software Engineer

Design a malicious-URL checking service using an isMalicious API

Company: LinkedIn

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Onsite

Design a backend service that determines whether a given URL is malicious. You have access to an external dependency: - `isMalicious(url) -> bool` (black-box API) This external API is: - **Rate-limited** (e.g., 1k QPS max) and sometimes slow (p95 500ms) or unavailable. - Potentially **costly** per call. Your service should expose an internal API such as: - `GET /reputation?url=...` → returns `{ verdict: "malicious"|"benign"|"unknown", checkedAt, confidence }` ### Requirements 1. Low latency for repeated queries. 2. Must handle high traffic (e.g., 50k QPS reads) while respecting the external API limit. 3. Avoid repeatedly calling `isMalicious` for the same URL. 4. Provide reasonable behavior for timeouts/outages (no cascading failures). 5. Support background re-checking because reputations can change. Explain: - APIs and key workflows (read path, cache miss path, async refresh) - Data model and storage choices - Caching strategy, TTLs, and deduplication of concurrent requests - Rate limiting / backpressure / circuit breaker strategy - Scaling, partitioning, and reliability - Metrics and operational concerns

Quick Answer: This question evaluates system design competencies such as scalable API design, caching and cache invalidation strategies, rate limiting and backpressure, fault tolerance and circuit-breaking, data modeling for reputation storage, partitioning, and operational metrics for reliability.

Related Interview Questions

  • Review a Web Application Architecture - LinkedIn (easy)
  • Scale a Distributed Randomized Multiset - LinkedIn (medium)
  • Design a Top-K Ranking Service - LinkedIn (easy)
  • Design a Global Calendar Service - LinkedIn (medium)
  • Design a metrics platform without alerting - LinkedIn (medium)
LinkedIn logo
LinkedIn
Jan 12, 2026, 12:00 AM
Software Engineer
Onsite
System Design
10
0
Loading...

Design a backend service that determines whether a given URL is malicious.

You have access to an external dependency:

  • isMalicious(url) -> bool (black-box API)

This external API is:

  • Rate-limited (e.g., 1k QPS max) and sometimes slow (p95 500ms) or unavailable.
  • Potentially costly per call.

Your service should expose an internal API such as:

  • GET /reputation?url=... → returns { verdict: "malicious"|"benign"|"unknown", checkedAt, confidence }

Requirements

  1. Low latency for repeated queries.
  2. Must handle high traffic (e.g., 50k QPS reads) while respecting the external API limit.
  3. Avoid repeatedly calling isMalicious for the same URL.
  4. Provide reasonable behavior for timeouts/outages (no cascading failures).
  5. Support background re-checking because reputations can change.

Explain:

  • APIs and key workflows (read path, cache miss path, async refresh)
  • Data model and storage choices
  • Caching strategy, TTLs, and deduplication of concurrent requests
  • Rate limiting / backpressure / circuit breaker strategy
  • Scaling, partitioning, and reliability
  • Metrics and operational concerns

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More LinkedIn•More Software Engineer•LinkedIn Software Engineer•LinkedIn System Design•Software Engineer System Design
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.