PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/SoFi

Design a Random Number Generation API

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's competency in designing scalable, secure, multi-tenant distributed services with emphasis on API and versioning, streaming protocols, entropy sources and cryptographic versus non-cryptographic RNGs, rate limiting, observability, and operational SLOs.

  • hard
  • SoFi
  • System Design
  • Software Engineer

Design a Random Number Generation API

Company: SoFi

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Onsite

Design a service exposing REST and streaming endpoints for generating random numbers at scale. Specify API contracts and versioning, entropy sources and CSPRNG vs. PRNG choices, seeding and reproducibility, rate limiting and quotas, multi-tenant isolation, security and abuse prevention, observability, deployment and scaling strategy, and SLAs for latency and availability.

Quick Answer: This question evaluates a candidate's competency in designing scalable, secure, multi-tenant distributed services with emphasis on API and versioning, streaming protocols, entropy sources and cryptographic versus non-cryptographic RNGs, rate limiting, observability, and operational SLOs.

Related Interview Questions

  • Design market price change notifications - SoFi (medium)
  • Design a Real-Time Suggestions Service - SoFi (hard)
  • Scale a key-value store with consistent hashing - SoFi (hard)
SoFi logo
SoFi
Jul 16, 2025, 12:00 AM
Software Engineer
Onsite
System Design
16
0

System Design: Random Number Service (REST + Streaming)

You are designing a high-scale service that generates random numbers and exposes both REST and streaming interfaces. The service must support secure and non-secure modes, per-tenant isolation, and strong observability. Assume internet-facing clients and multi-region deployment.

Specify the following:

  1. API Contracts and Versioning
  • Define REST endpoints for generating bytes, integers, and floats (bulk requests). Include request/response schemas, error codes, idempotency, and content types.
  • Define streaming endpoints (e.g., SSE, WebSocket, gRPC) for continuous random data. Include connection setup, backpressure, and chunking.
  • Describe versioning strategy and backward compatibility guarantees.
  1. Entropy Sources and RNG Choices
  • Choose CSPRNG(s) for secure mode and PRNG(s) for fast mode. Justify choices and any FIPS-validated options.
  • Describe entropy sources (OS/HW) and reseed strategy.
  1. Seeding and Reproducibility
  • Define how clients can request deterministic sequences (e.g., seed + stream_id + offset).
  • Describe unbiased range mapping for integers, precision for floats, and guarantees for identical output across regions/instances.
  1. Rate Limiting, Quotas, and Multi-Tenant Isolation
  • Specify per-tenant and per-token rate limits and quotas, burst behavior, headers, and error handling.
  • Describe isolation of RNG state and keys so tenants cannot affect or infer each other’s output.
  1. Security and Abuse Prevention
  • Define authentication/authorization, transport security, request validation, and DDoS/WAF controls.
  • Address storage/handling of seeds and audit considerations.
  1. Observability
  • Define metrics, logs, and traces. Include RNG health checks, entropy pool telemetry, and quality testing (e.g., periodic Dieharder/NIST STS).
  1. Deployment and Scaling Strategy
  • Propose a multi-region architecture, autoscaling, failover, and zero-downtime rollout plan.
  • Include worker design (e.g., vectorized generation, prefetch buffers), state placement, and stream stickiness.
  1. SLAs/SLOs
  • Propose latency and availability targets for REST and streaming, including startup latency, sustained throughput, and error budgets.

Assume peak scale of 100k REST requests/sec per region and up to 5 Gbps of streaming throughput per region. Note any assumptions you make.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More SoFi•More Software Engineer•SoFi Software Engineer•SoFi 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.