@@ -5,7 +5,7 @@ This project tests event sourced actors events that are then read by a projectio
55It is currently support the following alternative Akka Persistence and Akka Projection setup:
66
77* R2DBC (Postgres) as the event sourcing event store and the projection using R2DBC (Postgres)
8- * Cassandra as the event sourcing event store and the projection using JDBC (Postgres)
8+ * Cassandra as the event sourcing event store and the projection using JDBC (Postgres)
99* JDBC (Postgres) as the event sourcing event store and the projection using JDBC (Postgres)
1010
1111## Running a test locally
@@ -48,12 +48,16 @@ Start the application:
4848sbt " run 2551"
4949```
5050
51+ ### Run simulations
52+
53+ See [ simulation/README.md] for more detail on running simulations. Or for simple test runs, see below.
54+
5155### Start test run
5256
5357Start a test run:
5458
5559``` shell
56- curl -X POST --data ' {"name":""," nrActors":1000, "messagesPerActor": 100, "concurrentActors": 100, "bytesPerEvent": 100, "timeout": 60000}' --header " content-type: application/json" http://127.0.0.1:8051/test
60+ curl -X POST --data ' {"nrActors":1000, "messagesPerActor": 100, "concurrentActors": 100, "bytesPerEvent": 100, "timeout": 60000}' --header " content-type: application/json" http://127.0.0.1:8051/test
5761```
5862
5963the params are:
@@ -73,7 +77,7 @@ the expected event total is the `nrActors` * `messagesPeractor` * `${event-proce
7377Multiple projections can be run to increase the load on the tagging infrastructure while not overloading the normal event log.
7478Each projection gets its own tag for the same reason. A real production application would have different projections use the same tag.
7579
76- The test checks that every message makes it into the projection. these are stored in the ` events ` table. Duplicated
80+ The test checks that every message makes it into the projection. these are stored in the ` events ` table. Duplicated
7781are detected with a primary key.
7882
7983To inspect the database:
@@ -137,15 +141,15 @@ Typically, multiple nodes are required to re-create issues as while one node is
137141
138142### cinnamon
139143
140- the application exposes persistence metrics via cinnamon and prometheus. the cinnamon prometheus sandbox can be used to
144+ the application exposes persistence metrics via cinnamon and prometheus. the cinnamon prometheus sandbox can be used to
141145view the metrics in grafana.
142146
143147## failure scenarios
144148
145149### projection restart
146150
147151A known edge case is that a projection is restarted and delayed events from before the offset are then missed.
148- This should only happen in when multiple nodes are writing events as delayed event should still be written in offset
152+ This should only happen in when multiple nodes are writing events as delayed event should still be written in offset
149153order.
150154
151155## Deployment to eks/gke
@@ -176,7 +180,7 @@ this will create:
176180- install the metrics server into the eks cluster (requried by the operator)
177181- configure security groups to allow communication
178182
179- the outputs printed at the end of ` terraform apply ` give all the information needed to configure the ` kubernetes/deployment.yaml `
183+ the outputs printed at the end of ` terraform apply ` give all the information needed to configure the ` kubernetes/deployment.yaml `
180184
181185```
182186db_endpoint = "projection-testing.cgrtpi2lqrw8.us-east-2.rds.amazonaws.com:5432"
0 commit comments