This is a collection of projects that act as a simplified test harness for designing and running a simple load test scenario through a typical Akka persistent entity workload.
To provide a test harness to experiment with:
- Providing a controlled environment in which to test the performance of various journal/snapshot/projection backends (Cassandra vs Scylla vs Postgres)
- Different tunings of persistent entities and the JVM operating them, to gain insight into the performance of the JVM under various conditions
Currently the scenario only involves the shopping-cart-service (taken from Akka's CQRS/microservices developer guide example), to keep the moving parts to a minimum
Navigate to shopping-cart-service, and start necessary infrastructure which is currently only Cassandra for journal/snapshots and read-side projections:
$> shopping-cart-service/docker-compose up
If this is the first time starting the application, you must also:
- bootstrap the database schemas, as per instructions shopping-cart-service/README.md
- publish the shopping-cart-service locally:
$> cd shopping-cart-service; sbt publishLocal
Once all infra containers are ready, start a at least one node of the shopping cart service:
$> cd shopping-cart-service; sbt 'set run/javaOptions +="-Dconfig.resource=local1.conf"; run'
Once the shopping cart service is active, the load test can be started:
$> cd load-testing; sbt gatling:test
Look to the READMEs of each subproject for more details on tuning parameters, etc