Design resource loader and ROS-like pub/sub

Quick Overview

This question evaluates system design and distributed-systems competencies including resource management, async concurrency, caching and eviction, streaming and partial loads, dependency resolution, failure isolation, observability, and pub/sub concerns such as topic/schema/versioning, discovery, QoS, ordering, replay, partitioning, latency, clock semantics, and security. Commonly asked to assess architectural reasoning about scalability, low-latency trade-offs, fault tolerance, and deployment/topology choices, it is categorized under System Design and tests both high-level conceptual understanding and practical application-level design decisions; English.

Design resource loader and ROS-like pub/sub

Company: Roblox

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Onsite

Part A – Design a Resource Loader that supports multiple resource types (e.g., images, configs, ML models). Specify the public APIs, how new types are plugged in, async/concurrent loading, prioritization, batching, caching (memory/disk), eviction, deduplication, retries/timeouts, dependency resolution, streaming/partial loads, failure isolation, thread-safety, and observability (metrics/logging/tracing). Discuss deployment, scaling, and trade-offs. Part B – Design a ROS-like publish/subscribe system. Define topics, message schema/serialization, discovery, QoS/reliability options (best-effort vs. reliable), ordering, replay/durability, backpressure and flow control, handling slow or disconnected subscribers, partitioning and scaling across nodes, latency/real-time considerations, clock synchronization, fault tolerance, and security (authn/z, encryption). Compare brokered vs. brokerless and federated topologies and justify your choices.

Quick Answer: This question evaluates system design and distributed-systems competencies including resource management, async concurrency, caching and eviction, streaming and partial loads, dependency resolution, failure isolation, observability, and pub/sub concerns such as topic/schema/versioning, discovery, QoS, ordering, replay, partitioning, latency, clock semantics, and security. Commonly asked to assess architectural reasoning about scalability, low-latency trade-offs, fault tolerance, and deployment/topology choices, it is categorized under System Design and tests both high-level conceptual understanding and practical application-level design decisions; English.

|Home/System Design/Roblox
Roblox logo
Roblox
Sep 6, 2025
hardSoftware EngineerOnsiteSystem Design
21
0

System Design: Resource Loader and ROS-like Publish/Subscribe

Context

You are designing two foundational systems for a large-scale, real-time interactive platform with both client and server components. The platform must run across heterogeneous devices and networks, support low-latency experiences, and scale to millions of users and thousands of services.

Part A — Resource Loader

Design a Resource Loader that supports multiple resource types (e.g., images, configs, ML models, audio). Provide:

  1. Public APIs and data model
  2. How new resource types are plugged in (extensibility)
  3. Async/concurrent loading and cancellation
  4. Prioritization and dynamic reprioritization
  5. Batching and coalescing
  6. Caching: memory and disk; eviction policies; cache keys; validation
  7. Deduplication of in-flight requests
  8. Retries, timeouts, and hedged requests
  9. Dependency resolution (manifests, topological loading)
  10. Streaming/partial loads (e.g., progressive textures, range requests)
  11. Failure isolation and fault containment (e.g., decoder crashes)
  12. Thread-safety and correctness under concurrency
  13. Observability (metrics, logs, tracing)
  14. Deployment, scaling strategies (client/server, edge), and trade-offs

Part B — ROS-like Publish/Subscribe System

Design a ROS-like pub/sub system for distributed nodes (clients, services, simulators, and ML components). Define:

  1. Topics, message schema/serialization, and versioning
  2. Discovery mechanisms (LAN/WAN, NAT) and routing
  3. QoS and reliability options (best-effort vs reliable), delivery semantics
  4. Ordering guarantees (per-publisher, per-key)
  5. Replay and durability options
  6. Backpressure/flow control and handling slow/disconnected subscribers
  7. Partitioning and scaling across nodes and regions
  8. Latency/real-time considerations and zero-copy paths
  9. Clock synchronization and time semantics
  10. Fault tolerance, high availability, and failover
  11. Security (authentication, authorization, encryption)
  12. Comparison and justification of brokered vs brokerless and federated topologies

Be explicit about key trade-offs and justify your choices with concise reasoning.

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...