Automated Performance Testing with Torque
Article Summary
Dream11 handled 5.5 million concurrent users and 80 million requests per minute during IPL 2020. Their secret? A custom performance testing framework called Torque.
Dream11's engineering team built Torque to automate performance testing across 100+ microservices built with Java, Scala, Node, and various databases. The framework replaced their scattered setup of JMeter, Rundeck, and shell scripts with a unified solution.
Key Takeaways
- Tested 150+ APIs across 50+ services at 5x normal scale using automated infrastructure
- Combined Gatling, Redis, AWS Lambda, and Spark for distributed load generation
- Automated data prep, environment setup, and parallel test execution via Jenkins
- Achieved zero scale related production issues during peak IPL traffic
Torque enabled Dream11 to run 1,500+ load test iterations, benchmark critical services at 5x scale, and deliver a seamless experience during their biggest traffic event.
About This Article
Dream11 had to test over 100 microservices built with different technologies like Java, Scala, Node, MySQL, Cassandra, and Aerospike. Traffic patterns shifted dramatically before and after matches started, and managing gigabytes of test data across all these services became unwieldy.
Dream11's engineering team built Torque, a framework that pulls together Gatling for load generation, Scala for automation, Redis for distributed locking, AWS S3 and Lambda to split data, and Apache Spark to process large datasets. Jenkins orchestrates the whole thing.
Torque let Dream11 run over 1,500 load test iterations and test 50 critical services at 5x their normal scale. During IPL peak traffic, when the system handled 80 million requests per minute, they saw zero scale-related issues in production.