Performance benchmark
Read+Write
TPS
70 K
Latency
9 ms p(99)
Cost
$39.45
per month / per 1K TPS
Read Only
TPS
52.5 K
Latency
6 ms p(99)
Write Only
TPS
17.5 K
Latency
15 ms p(99)
Configuration
Read / Write Allocation: 75% / 25%
Data Unit Size: 550 bytes
Testbed: 2 Gatling instances, 4 cores, 20 minutes progressive throughput
App: Akka 2023.10, 15K entities, event sourced log, source code
Infrastructure:
9 EC2 m5.2xlarge ($0.2420 / hr)
1 EKS cluster ($0.10 / hr)
1 RDS db.r6g.2xlarge ($354 / mo 1-yr full upfront)
1 SSD 100 GB io2 7K IOPS ($712.50 / mo)
Total Monthly Cost: $1,861.09
Definitions
TPS: # of data units processed (read & write) / second
Latency: round trip HTTP request-response time measured during peak TPS
Cost: Total reserved instance costs for a 31 day month ratioed against 1K TPS
This was a sample test to demonstrate that 70,000 req/s of a mixed load (75% reads, 25% writes) was possible with Akka whose events are persisted to a Postgres database. This application simulates a digital twin solution, where a single Akka actor represented an IOT device that had to persist 550 bytes of information on each update. Every read request also returns 550 bytes of data. 15K entities were created and all of their state changes were persisted against a single event log RDS database instance.
Ultimately, in this configuration, customers would pay $39.45 / month per each 1 thousand TPS performance.