Used in evaluation of paper https://dl.acm.org/doi/abs/10.1145/3358499.3361222.
After cloning this project:
-
Go to its folder and launch SBT:
$ sbt
#. Compile everything and run all tests:
> test
#. Start the application:
> run
#. Browse to http://localhost:8001/tree or http://localhost:8001/graph for visualisation #. Browse to http://localhost:8080/ for http://localhost:8080/Account for REST endpoints
run1
-run4
(run local with shared level DB)cassandra
(run a local C* instance on port 9042)crun1
-crun4
(run local with C*)grun1
-grun4
(run generated version fromgenerated
sources root with C*)perf/gatling:test
- a performance test (on already running generated version)perf/gatling:testOnly com.ing.corebank.rebel.simple_transaction.simple.OpenAccountSimulation
AccountConsistencyChecker
- consistency checker for accounts (based on generated version, requires C*)bench/jmh:run -i 10 -wi 10 -f 2 -t 1 com.ing.rebel.benchmark.JmhBenchmarks
- run micro benchmarks
sbt cassandra
- start local Cassandrasbt grun1
- start single node generated implementationsbt perf/gatling:testOnly com.ing.corebank.rebel.simple_transaction.simple.OpenAccountSimulation
- run a simple performance test
export DATE=(date +"%Y_%m_%d_%H_%M_%S"); sbt "bench/jmh:run -rf csv -rff jmh_$DATE.csv -i 5 -wi 5 -f 1 -t 1 com.ing.rebel.benchmark.*PersistenceBenchmark"
-
sbt generated/docker:publishLocal
- currently only works when rebuild all in IntelliJ is done, since it dumps all the files in the target/classes -
docker-compose up
- start in local docker: c* + seed + node -
sbt perf/docker:publishLocal
- gatling + scenario's in docker run with: docker-compose run performance
sbt generated/ecr:createRepository
sbt generated/ecr:login
sbt generated/ecr:push
- implies previous stepsecs-cli compose -f docker-compose-aws.yml up
- starts c* + seed + kamon metrics board
In sbt:
generated/ecr:push
perf/ecr:push
grafana_influxdb/ecr:push
This is needed because the generated code depends on this artifact as a library.
$ sbt publishLocal
This code is used for research and proof of concept. It is currently in no state to be used for production. Use at your own risk.