Design: Read-Heavy vs Write-Heavy System Design
Design focuses on architectural differences and optimizations for read-heavy and write-heavy systems. Does not cover UI or client-side implementation. Does not include detailed security or compliance requirements.
Functional Requirements
FR1: Support a system that can handle either predominantly read operations or predominantly write operations.
FR2: Ensure data consistency and availability for both read-heavy and write-heavy workloads.
FR3: Optimize for low latency in read operations for read-heavy systems.
FR4: Optimize for high throughput and durability in write operations for write-heavy systems.
FR5: Provide scalability to handle up to 100,000 requests per second.
FR6: Support eventual consistency or strong consistency based on workload needs.
Non-Functional Requirements
NFR1: Read-heavy system should have p99 read latency under 100ms.
NFR2: Write-heavy system should sustain 100,000 writes per second with durability guarantees.
NFR3: Availability target of 99.9% uptime for both systems.
NFR4: Data storage must be reliable and scalable.
NFR5: System should handle spikes in traffic gracefully.