Performance benchmark
Read+Write
TPS
60 K
Latency
49 ms p(99)
Cost
$54.13
per month / per 1K TPS
Read Only
TPS
0
Latency
0 ms p(99)
Write Only
TPS
60 K
Latency
49 ms p(99)
Configuration
Read / Write Allocation: 0% / 100%
Data Unit Size: 550 bytes
Testbed: 2 Gatling instances, 4 cores, 20 minutes progressive throughput
App: Akka 2023.10, 40K entities, event sourced, source code
Infrastructure:
8 EC2 m5.2xlarge ($0.2420 / hr)
1 EKS cluster ($0.10 / hr)
2 RDS db.r6g.2xlarge ($354 / mo 1-yr full upfront)
2 SSD 100 GB io2 5K IOPS ($512.50 / mo)
Total Monthly Cost: $3,247.78
Definitions
TPS: # of transactional 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 60,000 write operations per second was possible with Akka, whose events are persisted to a Postgres database. No read allocations were given to the entities that were created. This application simulates a digital twin solution, where a single Akka actor represents an IOT device that has to persist 550 bytes of information on each update. 40K entities were created, and all of their state changes were persisted against a single event log RDS database instance.
We needed 5K SSD IOPS allocation to achieve this performance level, and storage IOPS is the biggest driver of cost in this benchmark.
Ultimately, in this configuration, customers would pay $54.13 / month for 1K of write TPS performance.