TPS vs RPS
Metrics āļŠāļģāļāļąāļ 2 āļāļąāļ§āļŠāļģāļŦāļĢāļąāļāļ§āļąāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļĢāļ°āļāļ backend āļāļĩāđāļŦāļĨāļēāļĒāļāļāļĄāļąāļāļŠāļąāļāļŠāļ āđāļāļĢāļēāļ°āļāļđāđāļŦāļĄāļ·āļāļāļ§āļąāļāļŠāļīāđāļāđāļāļĩāļĒāļ§āļāļąāļ āđāļāđāļāļĢāļīāļ āđ āļ§āļąāļāļāļāļĨāļ°āļĄāļīāļāļī
TPS (Transactions Per Second)
- āļāļģāļāļ§āļ transaction āļāļĩāđāļŠāļĄāļāļđāļĢāļāđ āļāđāļāļ§āļīāļāļēāļāļĩ
- Transaction = āļŦāļāđāļ§āļĒāļāļēāļāļāļĩāđāļŠāļĄāļāļđāļĢāļāđ (complete unit of work) āļāđāļāļ ACID â āļŠāļģāđāļĢāđāļāļāļąāđāļāļŦāļĄāļāļŦāļĢāļ·āļāđāļĄāđāđāļāļīāļāđāļĨāļĒ
- āļāļąāļ§āļāļĒāđāļēāļ: āđāļāļāđāļāļīāļ (1 transaction), āļŠāļĢāđāļēāļ order (1 transaction), āļĨāļāļāļ°āđāļāļĩāļĒāļ user (1 transaction)
- āđāļāđāļāļāļĩāđ: Business Logic / Database Layer
RPS (Requests Per Second)
- āļāļģāļāļ§āļ request āļāļļāļāļĢāļđāļāđāļāļ āļāđāļāļ§āļīāļāļēāļāļĩ
- Request = āļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđ API āļāļļāļāļĢāļđāļāđāļāļ (GET, POST, PUT, DELETE)
- āļāļļāļāļāļĢāļąāđāļāļāļĩāđāļĄāļĩāđāļāļĢāđāļĢāļĩāļĒāļ API āļāļāļāļāļļāļ = 1 request
- āđāļāđāļāļāļĩāđ: Network / API Layer
āļāļ§āļēāļĄāđāļāļāļāđāļēāļāļŦāļĨāļąāļ
| āļāđāļēāļ | TPS | RPS |
|---|---|---|
| āļāļāļāđāļāļ | Business/Database layer | API/Network layer |
| āļāļąāļāļāļ°āđāļĢ | āđāļāļāļēāļ°āļāļēāļāļāļĩāđāļĄāļĩāļāļ§āļēāļĄāļŦāļĄāļēāļĒāļāļēāļāļāļļāļĢāļāļīāļ | āļāļļāļ request āļāļĩāđāđāļāđāļēāļĄāļē |
| ACID | āļāđāļāļ | āđāļĄāđāļāļģāđāļāđāļ |
āļāļāļŠāļģāļāļąāļ:
- RPS âĨ TPS āđāļŠāļĄāļ â 1 transaction āļāļēāļāđāļāđāļŦāļĨāļēāļĒ requests
- āđāļāđ 1 request āđāļĄāđāļāļģāđāļāđāļāļāđāļāļāđāļāđāļ transaction
āļāļąāļ§āļāļĒāđāļēāļāļāļĢāļīāļ
1. Read-heavy System (Social Media)
- RPS = 100,000 (āļāļđ feed, āđāļŦāļĨāļāļĢāļđāļ, āļāđāļēāļāļāļāļĄāđāļĄāļāļāđ)
- TPS = 5,000 (āđāļāļŠāļāđ, comment, like)
- āļāļąāļāļĢāļēāļŠāđāļ§āļ 20:1
2. E-commerce Checkout (Sustained Traffic)
āļāļļāļāļ§āļīāļāļēāļāļĩāđāļāļāđāļ§āļ peak:
- 100 users āđāļāļīāļāļŦāļāđāļē â 3 GETs = 300 requests
- 100 users āļāļāļĒāļ·āļāļĒāļąāļ â 1 POST = 100 requests
- RPS = 400, TPS = 100 â āļāļąāļāļĢāļēāļŠāđāļ§āļ 4:1
3. Per-user Journey (E-commerce)
User 1 āļāļāļāļąāđāļāđāļāđāđāļĢāļīāđāļĄāļāļāļāļ (30 āļ§āļīāļāļēāļāļĩ):
- āđāļŦāļĨāļāļŦāļāđāļē checkout â 3 GET requests (cart, shipping, payment)
- āļāļāļĒāļ·āļāļĒāļąāļ â 1 POST request (create order)
- 4 requests : 1 transaction â āļāđāļēāļāđāļāļāļāļēāļĢ TPS = 100 āļĢāļ°āļāļāļāđāļāļāļĢāļąāļ RPS â 400
āļāļđāļāļąāļ§āđāļŦāļāđāļĄāļ·āđāļāđāļŦāļĢāđ?
| āļāļđ TPS āđāļĄāļ·āđāļ | āļāļđ RPS āđāļĄāļ·āđāļ |
|---|---|
| āļ§āļēāļāđāļāļāļāļāļēāļ Database | āļ§āļēāļāđāļāļāļāļāļēāļ API Gateway / Load Balancer |
| āļāļģāļāļ§āļāļāđāļāļāļļāļāļāđāļāļāļļāļĢāļāļĢāļĢāļĄ | āļāļĢāļ°āđāļĄāļīāļ Bandwidth |
| āļ§āļąāļ business performance | āļāļąāđāļāļāđāļē Rate Limiting |
| āļāļĢāļ°āđāļĄāļīāļ throughput āļāļēāļāļāļļāļĢāļāļīāļ | āļāļđāļāļĪāļāļīāļāļĢāļĢāļĄāļāļēāļĢāđāļāđāļāļēāļāļāļĢāļīāļ |
āļāļģāļāļēāļĄāļāļĩāđāļāļ§āļĢāļāļēāļĄāđāļŠāļĄāļ
āđāļ§āļĨāļēāđāļāļĢāļāļāļāļ§āđāļē âāļĢāļ°āļāļāļĢāļāļāļĢāļąāļāđāļāđ 10,000 TPSâ:
- āđāļāđāđāļāļ§āđāļē TPS āđāļĄāđāđāļāđ RPS?
- āļāļąāļāļĢāļēāļŠāđāļ§āļ Request-to-Transaction (RPT) āđāļāđāļāļĒāļąāļāđāļ?
- āļĢāļ°āļāļāđāļāđāļ read-heavy āļŦāļĢāļ·āļ write-heavy?
āļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢïŋ―ïŋ―ïŋ―āļĩāđāļāļĨāļēāļāđāļāļĨāļ·āđāļāļāļĢāļ°āļŦāļ§āđāļēāļ Product āļāļąāļ Tech āđāļĢāļ·āđāļāļ capacity āļāļēāļāļāļģāđāļāļŠāļđāđāļŦāļēāļĒāļāļ°āđāļāđ â Sakul Montha
Sources
- Sakul Montha â âRPS vs TPS: āļŠāļāļāļāļģāļāļĩāđāļāļĨāđāļēāļĒāļāļąāļāđāļāđāļāđāļēāļāļāļąāļâ (Medium, 2025-10-23) â āļāļĩāđāļĄāļēāļāļāļāļāļąāļ§āļāļĒāđāļēāļ 3 scenarios āđāļĨāļ° Request-to-Transaction ratio
Related
- AWS Services Overview â infrastructure ïŋ―ïŋ―ïŋ―āļĩāđāđāļāđ metrics āđāļŦāļĨāđāļēāļāļĩāđāļ§āļąāļ
- Spring Boot â backend app āļāļĩāđāļ§āļąāļ metrics āđāļŦāļĨāđāļēāļïŋ―ïŋ―āđ
- 3 Pillars of Observability â Metrics āđāļāđāļ 1 āđāļ 3 ïŋ―ïŋ―ïŋ―āļŠāļēāļŦāļĨāļąāļāļāļāļ observability