Skip to content

Instantly share code, notes, and snippets.

View AmilcarArmmand's full-sized avatar

AArmmand AmilcarArmmand

View GitHub Profile
@AmilcarArmmand
AmilcarArmmand / srs.md
Last active November 22, 2025 05:10
Software Requirements Specification (SRS) for Fault-Tolerant Storage Design for Video Streaming

Software Requirements Specification (SRS)

Project Name: CAAT Distributed Storage System for Video Streaming Storage

Focus Component: Fault-Tolerant Design: Streaming continues even if one or more storage nodes fail.

Team Members: Team: Sudo !! (Sudo Bang-Bang)

  • Amilcar Armmand - System Architect
  • Tiffany Choe - System Architect

Initial Requirements (100,000 users/hour):

  • Concurrent streams: ~28,000 (assuming 10-minute average watch time)
  • Storage needed:
    • Daily Active users (DAU): 2,400,000 (100k/hr)
    • Average video uploaded per user per day: 0.005 videos (0.5 % of DAUs upload a video daily)
    • Average video size: 100 MB (at 1080p resolution, H264 compression)
    • Daily uploads: 2,400,000 x 0.005 = 12,000 videos/day
    • Daily storage for uploads: 12,000 x 100 MB = 1.2 TB/day
    • Annual video uploads: 1.2 TB/day x 365 days = 438 TB/year

Distributed System Install Guide

Windows Install

  • I recommend using Winget or Scoop, go with Scoop if you don’t want UAC pop-ups, to install and organize packages on Windows versus manually installing and tracking

0. Install and uv package manager

uv repo An extremely fast Python package and project manager, written in Rust.