├── .gitignore ├── DOMAIN.md ├── README.md ├── docker └── docker-compose.yml ├── examples └── src │ └── main │ └── scala │ ├── CirceDiscriminatorTypeExample.scala │ ├── ConcurrentBackgroundStreamApp.scala │ └── PlaybackHandlerApp.scala ├── project ├── Dependencies.scala └── build.properties ├── readside └── src │ └── main │ ├── resources │ ├── application.conf │ └── logback.xml │ └── scala │ ├── Module.scala │ ├── Server.scala │ ├── domain │ ├── CarPartStoreAlgebra.scala │ ├── CarStoreAlgebra.scala │ ├── CarsStoreEventHandler.scala │ ├── StoreAlgebra.scala │ ├── cars.scala │ ├── errors.scala │ └── parts.scala │ ├── endpoint │ └── CarEndpoints.scala │ ├── interpreter │ ├── StoreInterpreter.scala │ └── doobie │ │ ├── CarPartStoreDoobieInterpreter.scala │ │ └── CarStoreDoobieInterpreter.scala │ └── service │ └── CarService.scala ├── shared └── src │ └── main │ ├── resources │ └── db │ │ └── migration │ │ ├── V1__initial_database_schema.sql │ │ └── V2__added_event_consumers_table.sql │ └── scala │ ├── config │ ├── ApplicationConfig.scala │ └── DatabaseConfig.scala │ ├── domain │ ├── EventLogAlgebra.scala │ └── events.scala │ ├── interpreter │ └── doobie │ │ └── EventLogDoobieInterpreter.scala │ └── utils │ └── package.scala └── writeside └── src └── main ├── resources ├── application.conf └── logback.xml └── scala ├── Module.scala ├── Server.scala ├── domain ├── CommandsAlgebra.scala ├── CommandsService.scala ├── ValidationAlgebra.scala ├── ValidatorReplayHandler.scala ├── commands.scala └── validations.scala ├── endpoint └── CommandEndpoints.scala └── interpreter ├── CommandsInterpreter.scala └── memory └── ValidationInMemoryInterpreter.scala /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/.gitignore -------------------------------------------------------------------------------- /DOMAIN.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/DOMAIN.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/README.md -------------------------------------------------------------------------------- /docker/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/docker/docker-compose.yml -------------------------------------------------------------------------------- /examples/src/main/scala/CirceDiscriminatorTypeExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/examples/src/main/scala/CirceDiscriminatorTypeExample.scala -------------------------------------------------------------------------------- /examples/src/main/scala/ConcurrentBackgroundStreamApp.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/examples/src/main/scala/ConcurrentBackgroundStreamApp.scala -------------------------------------------------------------------------------- /examples/src/main/scala/PlaybackHandlerApp.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/examples/src/main/scala/PlaybackHandlerApp.scala -------------------------------------------------------------------------------- /project/Dependencies.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/project/Dependencies.scala -------------------------------------------------------------------------------- /project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.1.0 -------------------------------------------------------------------------------- /readside/src/main/resources/application.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/resources/application.conf -------------------------------------------------------------------------------- /readside/src/main/resources/logback.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/resources/logback.xml -------------------------------------------------------------------------------- /readside/src/main/scala/Module.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/scala/Module.scala -------------------------------------------------------------------------------- /readside/src/main/scala/Server.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/scala/Server.scala -------------------------------------------------------------------------------- /readside/src/main/scala/domain/CarPartStoreAlgebra.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/scala/domain/CarPartStoreAlgebra.scala -------------------------------------------------------------------------------- /readside/src/main/scala/domain/CarStoreAlgebra.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/scala/domain/CarStoreAlgebra.scala -------------------------------------------------------------------------------- /readside/src/main/scala/domain/CarsStoreEventHandler.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/scala/domain/CarsStoreEventHandler.scala -------------------------------------------------------------------------------- /readside/src/main/scala/domain/StoreAlgebra.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/scala/domain/StoreAlgebra.scala -------------------------------------------------------------------------------- /readside/src/main/scala/domain/cars.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/scala/domain/cars.scala -------------------------------------------------------------------------------- /readside/src/main/scala/domain/errors.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/scala/domain/errors.scala -------------------------------------------------------------------------------- /readside/src/main/scala/domain/parts.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/scala/domain/parts.scala -------------------------------------------------------------------------------- /readside/src/main/scala/endpoint/CarEndpoints.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/scala/endpoint/CarEndpoints.scala -------------------------------------------------------------------------------- /readside/src/main/scala/interpreter/StoreInterpreter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/scala/interpreter/StoreInterpreter.scala -------------------------------------------------------------------------------- /readside/src/main/scala/interpreter/doobie/CarPartStoreDoobieInterpreter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/scala/interpreter/doobie/CarPartStoreDoobieInterpreter.scala -------------------------------------------------------------------------------- /readside/src/main/scala/interpreter/doobie/CarStoreDoobieInterpreter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/scala/interpreter/doobie/CarStoreDoobieInterpreter.scala -------------------------------------------------------------------------------- /readside/src/main/scala/service/CarService.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/readside/src/main/scala/service/CarService.scala -------------------------------------------------------------------------------- /shared/src/main/resources/db/migration/V1__initial_database_schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/shared/src/main/resources/db/migration/V1__initial_database_schema.sql -------------------------------------------------------------------------------- /shared/src/main/resources/db/migration/V2__added_event_consumers_table.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/shared/src/main/resources/db/migration/V2__added_event_consumers_table.sql -------------------------------------------------------------------------------- /shared/src/main/scala/config/ApplicationConfig.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/shared/src/main/scala/config/ApplicationConfig.scala -------------------------------------------------------------------------------- /shared/src/main/scala/config/DatabaseConfig.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/shared/src/main/scala/config/DatabaseConfig.scala -------------------------------------------------------------------------------- /shared/src/main/scala/domain/EventLogAlgebra.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/shared/src/main/scala/domain/EventLogAlgebra.scala -------------------------------------------------------------------------------- /shared/src/main/scala/domain/events.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/shared/src/main/scala/domain/events.scala -------------------------------------------------------------------------------- /shared/src/main/scala/interpreter/doobie/EventLogDoobieInterpreter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/shared/src/main/scala/interpreter/doobie/EventLogDoobieInterpreter.scala -------------------------------------------------------------------------------- /shared/src/main/scala/utils/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/shared/src/main/scala/utils/package.scala -------------------------------------------------------------------------------- /writeside/src/main/resources/application.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/writeside/src/main/resources/application.conf -------------------------------------------------------------------------------- /writeside/src/main/resources/logback.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/writeside/src/main/resources/logback.xml -------------------------------------------------------------------------------- /writeside/src/main/scala/Module.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/writeside/src/main/scala/Module.scala -------------------------------------------------------------------------------- /writeside/src/main/scala/Server.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/writeside/src/main/scala/Server.scala -------------------------------------------------------------------------------- /writeside/src/main/scala/domain/CommandsAlgebra.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/writeside/src/main/scala/domain/CommandsAlgebra.scala -------------------------------------------------------------------------------- /writeside/src/main/scala/domain/CommandsService.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/writeside/src/main/scala/domain/CommandsService.scala -------------------------------------------------------------------------------- /writeside/src/main/scala/domain/ValidationAlgebra.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/writeside/src/main/scala/domain/ValidationAlgebra.scala -------------------------------------------------------------------------------- /writeside/src/main/scala/domain/ValidatorReplayHandler.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/writeside/src/main/scala/domain/ValidatorReplayHandler.scala -------------------------------------------------------------------------------- /writeside/src/main/scala/domain/commands.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/writeside/src/main/scala/domain/commands.scala -------------------------------------------------------------------------------- /writeside/src/main/scala/domain/validations.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/writeside/src/main/scala/domain/validations.scala -------------------------------------------------------------------------------- /writeside/src/main/scala/endpoint/CommandEndpoints.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/writeside/src/main/scala/endpoint/CommandEndpoints.scala -------------------------------------------------------------------------------- /writeside/src/main/scala/interpreter/CommandsInterpreter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/writeside/src/main/scala/interpreter/CommandsInterpreter.scala -------------------------------------------------------------------------------- /writeside/src/main/scala/interpreter/memory/ValidationInMemoryInterpreter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaFanatics/pure-cqrs-example/HEAD/writeside/src/main/scala/interpreter/memory/ValidationInMemoryInterpreter.scala --------------------------------------------------------------------------------