playbook/antigravity-awesome-skills/skills/monopoly/scale-benchmarks/SKILL.md

175 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: scale-benchmarks
description: Reference document for monopoly scale-benchmarks.
risk: safe
reports-to: monopoly
---
# MONOPOLY — Scale Benchmarks & Estimation Formulas
## Quick Estimation Formulas
### User → RPS Conversion
```
Requests per second (avg) = DAU × avg_requests_per_user_per_day / 86400
Requests per second (peak) = avg_RPS × peak_multiplier
Peak multipliers by app type:
Social media: 510×
E-commerce: 35× (higher during sales)
News / media: 1020× (breaking news spike)
B2B SaaS: 23× (business hours spike)
Gaming: 515× (event-driven)
```
### Storage Estimation
```
Storage per day = requests_per_day × avg_payload_size
Storage per year = storage_per_day × 365
With replication = storage_per_year × replication_factor (3× typical)
With CDN/cache = reduce by cache_hit_ratio (80% hit = 20% origin load)
Common payload sizes:
Tweet / short text: 500B
Social post with text: 2KB
Profile data: 5KB
Image (compressed): 200KB2MB
Video (per minute): 50MB (720p), 150MB (1080p)
API JSON response: 120KB
```
### Bandwidth Estimation
```
Inbound bandwidth = avg_request_size × RPS
Outbound bandwidth = avg_response_size × RPS
Convert: 1 Gbps = 125 MB/s
10 Gbps = 1.25 GB/s
```
---
## Known Scale Limits of Common Technologies
### Databases
| Technology | Single Node Writes | Reads (with replicas) | Recommended Shard/Cluster Trigger |
|------------|-------------------|----------------------|----------------------------------|
| PostgreSQL | ~5K20K writes/s | ~50K200K reads/s | >5TB data or >20K writes/s |
| MySQL | ~10K25K writes/s | ~60K250K reads/s | >5TB or >25K writes/s |
| MongoDB | ~20K50K writes/s | ~50K100K reads/s | >100GB or >50K writes/s |
| Cassandra | ~200K1M writes/s | ~200K500K reads/s | Almost never needs explicit sharding |
| DynamoDB | Unlimited (managed) | Unlimited (managed) | Use provisioned capacity mode |
| Redis | ~500K1M ops/s | Same | >50GB data or cluster needed |
| Elasticsearch | ~10K50K docs/s | ~1K10K queries/s | >100M documents per index |
### Queues / Streams
| Technology | Max Throughput | Max Consumers | Retention |
|------------|----------------|---------------|-----------|
| Kafka | 1M+ msgs/s per cluster | Unlimited consumer groups | Configurable (daysforever) |
| RabbitMQ | ~50K100K msgs/s | Limited by connections | Until consumed |
| SQS Standard | Unlimited (AWS-managed) | Unlimited | 14 days |
| SQS FIFO | 3K msgs/s per queue | Per group | 14 days |
| Redis Pub/Sub | ~1M msgs/s | Limited by subscribers | None (fire-and-forget) |
### Caching
| Technology | Max Memory (single) | Max Throughput | Latency |
|------------|--------------------|--------------|----|
| Redis | ~1TB RAM | ~1M ops/s | <1ms |
| Memcached | ~64GB RAM | ~1M ops/s | <1ms |
| In-process (Caffeine/Guava) | JVM heap | Unlimited (local) | <0.1ms |
---
## Capacity Planning by User Scale
### 1K DAU
```
Avg RPS: ~15 RPS
Peak RPS: ~1050 RPS
DB size/year: ~1050GB
Infra needed: Single server, managed DB (RDS t3.medium), basic CDN
Monthly cost: $50200
```
### 10K DAU
```
Avg RPS: ~1050 RPS
Peak RPS: ~100500 RPS
DB size/year: ~100500GB
Infra needed: 24 app servers, RDS r5.large, Redis t3.medium, CDN
Monthly cost: $300800
```
### 100K DAU
```
Avg RPS: ~100500 RPS
Peak RPS: ~1K5K RPS
DB size/year: ~15TB
Infra needed: ASG (510 app servers), RDS r5.xlarge + 2 replicas, Redis cluster, CDN, ALB
Monthly cost: $2K8K
```
### 1M DAU
```
Avg RPS: ~1K5K RPS
Peak RPS: ~10K50K RPS
DB size/year: ~1050TB
Infra needed: ASG (2050 servers), DB sharding or Aurora, Redis cluster, Kafka, CDN, WAF
Monthly cost: $20K80K
```
### 10M DAU
```
Avg RPS: ~10K50K RPS
Peak RPS: ~100K500K RPS
DB size/year: ~100500TB
Infra needed: Multi-region, microservices, distributed DB (Cassandra/CockroachDB), full CDN, dedicated SRE
Monthly cost: $200K2M+
```
---
## Common SLO Targets
| Tier | Availability | Monthly Downtime Allowed |
|------|-------------|--------------------------|
| 99% | Basic | 7.2 hours/month |
| 99.9% (three nines) | Standard production | 43.8 minutes/month |
| 99.95% | Important services | 21.9 minutes/month |
| 99.99% (four nines) | Critical services | 4.38 minutes/month |
| 99.999% (five nines) | Telecom / payments | 26 seconds/month |
**Achieving four nines requires:** Multi-AZ deployment, automated failover, zero-downtime deploys, chaos engineering, 24/7 on-call.
---
## Latency Budget Guidelines
```
User perceived latency targets:
< 100ms → Feels instant
100300ms → Acceptable for most interactions
300ms1s → Noticeable; optimize if possible
> 1s → Frustrating; unacceptable for critical paths
Network latency by distance (approximate):
Same datacenter: 0.5ms
Same region (AZ): 12ms
Cross-region US: 3060ms
US to Europe: 80120ms
US to Asia: 150250ms
Database query targets:
Simple key-value: < 1ms (cache)
Simple DB query: < 5ms
Complex query: < 50ms
Reporting query: < 500ms (async if > 1s)
```
## Limitations
- This is a reference document and may not cover all edge cases. Always verify architectures before production.