├── .gitignore ├── .scalafmt.conf ├── LICENSE ├── README.asciidoc ├── doc ├── Components.png ├── Diagrams.xml ├── DomainModel.png ├── Layer.png └── README.asciidoc ├── modules ├── adapter │ ├── infrastructure │ │ ├── elasticsearch │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── scala │ │ │ │ └── crossroad0201 │ │ │ │ └── dddonscala │ │ │ │ └── adapter │ │ │ │ └── infrastructure │ │ │ │ └── elasticsearch │ │ │ │ └── taskview │ │ │ │ └── TaskViewQueryProcessorOnES.scala │ │ ├── kafka │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── scala │ │ │ │ └── crossroad0201 │ │ │ │ └── dddonscala │ │ │ │ └── adapter │ │ │ │ └── infrastructure │ │ │ │ └── kafka │ │ │ │ ├── task │ │ │ │ └── TaskEventPublisherOnKafka.scala │ │ │ │ └── user │ │ │ │ └── UserEventPublisherOnKafka.scala │ │ ├── rdb │ │ │ └── src │ │ │ │ ├── main │ │ │ │ └── scala │ │ │ │ │ └── crossroad0201 │ │ │ │ │ └── dddonscala │ │ │ │ │ └── adapter │ │ │ │ │ └── infrastructure │ │ │ │ │ └── rdb │ │ │ │ │ ├── ScalikeJdbcAware.scala │ │ │ │ │ ├── package.scala │ │ │ │ │ ├── task │ │ │ │ │ └── TaskRepositoryOnRDB.scala │ │ │ │ │ └── user │ │ │ │ │ └── UserRepositoryOnRDB.scala │ │ │ │ └── test │ │ │ │ ├── resources │ │ │ │ └── application.conf │ │ │ │ └── scala │ │ │ │ └── crossroad0201 │ │ │ │ └── dddonscala │ │ │ │ └── infrastructure │ │ │ │ └── task │ │ │ │ └── TaskRepositoryOnRDBSpec.scala │ │ └── src │ │ │ └── main │ │ │ └── scala │ │ │ └── crossroad0201 │ │ │ └── dddonscala │ │ │ └── infrastructure │ │ │ ├── EntityMetaDataCreatorImpl.scala │ │ │ ├── UUIDEntityIdGenerator.scala │ │ │ ├── package.scala │ │ │ ├── task │ │ │ └── package.scala │ │ │ └── user │ │ │ └── package.scala │ └── interface │ │ └── sample │ │ └── src │ │ ├── main │ │ └── scala │ │ │ └── crossroad0201 │ │ │ └── dddonscala │ │ │ └── adapter │ │ │ └── controller │ │ │ └── sample │ │ │ ├── Components.scala │ │ │ ├── InfrastructureAware.scala │ │ │ └── SampleController.scala │ │ └── test │ │ └── scala │ │ └── crossroad0201 │ │ └── dddonscala │ │ └── adapter │ │ └── controller │ │ └── sample │ │ └── SampleControllerSpec.scala ├── application │ └── src │ │ └── main │ │ └── scala │ │ └── crossroad0201 │ │ └── dddonscala │ │ └── application │ │ ├── ServiceError.scala │ │ ├── TransactionAware.scala │ │ ├── package.scala │ │ └── task │ │ └── TaskService.scala ├── domain │ └── src │ │ └── main │ │ └── scala │ │ └── crossroad0201 │ │ └── dddonscala │ │ └── domain │ │ ├── DomainError.scala │ │ ├── DomainEvent.scala │ │ ├── Entity.scala │ │ ├── UnitOfWork.scala │ │ ├── package.scala │ │ ├── task │ │ ├── Comment.scala │ │ ├── Task.scala │ │ ├── TaskError.scala │ │ ├── TaskEventPublisher.scala │ │ ├── TaskRepository.scala │ │ ├── TaskService.scala │ │ ├── events.scala │ │ └── package.scala │ │ └── user │ │ ├── User.scala │ │ ├── UserEventPublisher.scala │ │ ├── UserRepository.scala │ │ ├── events.scala │ │ └── package.scala └── query │ └── src │ └── main │ └── scala │ └── crossroad0201 │ └── dddonscala │ └── query │ └── taskview │ ├── TaskView.scala │ └── TaskViewQueryProcessor.scala ├── project ├── Dependencies.scala ├── build.properties └── plugins.sbt └── src └── main └── resources └── db └── migration └── V1__create_tables.sql /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | .idea/ 3 | *.iml 4 | .db/ 5 | -------------------------------------------------------------------------------- /.scalafmt.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/.scalafmt.conf -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/LICENSE -------------------------------------------------------------------------------- /README.asciidoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/README.asciidoc -------------------------------------------------------------------------------- /doc/Components.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/doc/Components.png -------------------------------------------------------------------------------- /doc/Diagrams.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/doc/Diagrams.xml -------------------------------------------------------------------------------- /doc/DomainModel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/doc/DomainModel.png -------------------------------------------------------------------------------- /doc/Layer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/doc/Layer.png -------------------------------------------------------------------------------- /doc/README.asciidoc: -------------------------------------------------------------------------------- 1 | 2 | * `*.xml` ファイルは https://www.draw.io[draw.io] で作成した図形データです。 3 | -------------------------------------------------------------------------------- /modules/adapter/infrastructure/elasticsearch/src/main/scala/crossroad0201/dddonscala/adapter/infrastructure/elasticsearch/taskview/TaskViewQueryProcessorOnES.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/infrastructure/elasticsearch/src/main/scala/crossroad0201/dddonscala/adapter/infrastructure/elasticsearch/taskview/TaskViewQueryProcessorOnES.scala -------------------------------------------------------------------------------- /modules/adapter/infrastructure/kafka/src/main/scala/crossroad0201/dddonscala/adapter/infrastructure/kafka/task/TaskEventPublisherOnKafka.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/infrastructure/kafka/src/main/scala/crossroad0201/dddonscala/adapter/infrastructure/kafka/task/TaskEventPublisherOnKafka.scala -------------------------------------------------------------------------------- /modules/adapter/infrastructure/kafka/src/main/scala/crossroad0201/dddonscala/adapter/infrastructure/kafka/user/UserEventPublisherOnKafka.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/infrastructure/kafka/src/main/scala/crossroad0201/dddonscala/adapter/infrastructure/kafka/user/UserEventPublisherOnKafka.scala -------------------------------------------------------------------------------- /modules/adapter/infrastructure/rdb/src/main/scala/crossroad0201/dddonscala/adapter/infrastructure/rdb/ScalikeJdbcAware.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/infrastructure/rdb/src/main/scala/crossroad0201/dddonscala/adapter/infrastructure/rdb/ScalikeJdbcAware.scala -------------------------------------------------------------------------------- /modules/adapter/infrastructure/rdb/src/main/scala/crossroad0201/dddonscala/adapter/infrastructure/rdb/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/infrastructure/rdb/src/main/scala/crossroad0201/dddonscala/adapter/infrastructure/rdb/package.scala -------------------------------------------------------------------------------- /modules/adapter/infrastructure/rdb/src/main/scala/crossroad0201/dddonscala/adapter/infrastructure/rdb/task/TaskRepositoryOnRDB.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/infrastructure/rdb/src/main/scala/crossroad0201/dddonscala/adapter/infrastructure/rdb/task/TaskRepositoryOnRDB.scala -------------------------------------------------------------------------------- /modules/adapter/infrastructure/rdb/src/main/scala/crossroad0201/dddonscala/adapter/infrastructure/rdb/user/UserRepositoryOnRDB.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/infrastructure/rdb/src/main/scala/crossroad0201/dddonscala/adapter/infrastructure/rdb/user/UserRepositoryOnRDB.scala -------------------------------------------------------------------------------- /modules/adapter/infrastructure/rdb/src/test/resources/application.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/infrastructure/rdb/src/test/resources/application.conf -------------------------------------------------------------------------------- /modules/adapter/infrastructure/rdb/src/test/scala/crossroad0201/dddonscala/infrastructure/task/TaskRepositoryOnRDBSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/infrastructure/rdb/src/test/scala/crossroad0201/dddonscala/infrastructure/task/TaskRepositoryOnRDBSpec.scala -------------------------------------------------------------------------------- /modules/adapter/infrastructure/src/main/scala/crossroad0201/dddonscala/infrastructure/EntityMetaDataCreatorImpl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/infrastructure/src/main/scala/crossroad0201/dddonscala/infrastructure/EntityMetaDataCreatorImpl.scala -------------------------------------------------------------------------------- /modules/adapter/infrastructure/src/main/scala/crossroad0201/dddonscala/infrastructure/UUIDEntityIdGenerator.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/infrastructure/src/main/scala/crossroad0201/dddonscala/infrastructure/UUIDEntityIdGenerator.scala -------------------------------------------------------------------------------- /modules/adapter/infrastructure/src/main/scala/crossroad0201/dddonscala/infrastructure/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/infrastructure/src/main/scala/crossroad0201/dddonscala/infrastructure/package.scala -------------------------------------------------------------------------------- /modules/adapter/infrastructure/src/main/scala/crossroad0201/dddonscala/infrastructure/task/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/infrastructure/src/main/scala/crossroad0201/dddonscala/infrastructure/task/package.scala -------------------------------------------------------------------------------- /modules/adapter/infrastructure/src/main/scala/crossroad0201/dddonscala/infrastructure/user/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/infrastructure/src/main/scala/crossroad0201/dddonscala/infrastructure/user/package.scala -------------------------------------------------------------------------------- /modules/adapter/interface/sample/src/main/scala/crossroad0201/dddonscala/adapter/controller/sample/Components.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/interface/sample/src/main/scala/crossroad0201/dddonscala/adapter/controller/sample/Components.scala -------------------------------------------------------------------------------- /modules/adapter/interface/sample/src/main/scala/crossroad0201/dddonscala/adapter/controller/sample/InfrastructureAware.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/interface/sample/src/main/scala/crossroad0201/dddonscala/adapter/controller/sample/InfrastructureAware.scala -------------------------------------------------------------------------------- /modules/adapter/interface/sample/src/main/scala/crossroad0201/dddonscala/adapter/controller/sample/SampleController.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/interface/sample/src/main/scala/crossroad0201/dddonscala/adapter/controller/sample/SampleController.scala -------------------------------------------------------------------------------- /modules/adapter/interface/sample/src/test/scala/crossroad0201/dddonscala/adapter/controller/sample/SampleControllerSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/adapter/interface/sample/src/test/scala/crossroad0201/dddonscala/adapter/controller/sample/SampleControllerSpec.scala -------------------------------------------------------------------------------- /modules/application/src/main/scala/crossroad0201/dddonscala/application/ServiceError.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/application/src/main/scala/crossroad0201/dddonscala/application/ServiceError.scala -------------------------------------------------------------------------------- /modules/application/src/main/scala/crossroad0201/dddonscala/application/TransactionAware.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/application/src/main/scala/crossroad0201/dddonscala/application/TransactionAware.scala -------------------------------------------------------------------------------- /modules/application/src/main/scala/crossroad0201/dddonscala/application/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/application/src/main/scala/crossroad0201/dddonscala/application/package.scala -------------------------------------------------------------------------------- /modules/application/src/main/scala/crossroad0201/dddonscala/application/task/TaskService.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/application/src/main/scala/crossroad0201/dddonscala/application/task/TaskService.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/DomainError.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/DomainError.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/DomainEvent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/DomainEvent.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/Entity.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/Entity.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/UnitOfWork.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/UnitOfWork.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/package.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/Comment.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/Comment.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/Task.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/Task.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/TaskError.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/TaskError.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/TaskEventPublisher.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/TaskEventPublisher.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/TaskRepository.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/TaskRepository.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/TaskService.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/TaskService.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/events.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/events.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/task/package.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/user/User.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/user/User.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/user/UserEventPublisher.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/user/UserEventPublisher.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/user/UserRepository.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/user/UserRepository.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/user/events.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/user/events.scala -------------------------------------------------------------------------------- /modules/domain/src/main/scala/crossroad0201/dddonscala/domain/user/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/domain/src/main/scala/crossroad0201/dddonscala/domain/user/package.scala -------------------------------------------------------------------------------- /modules/query/src/main/scala/crossroad0201/dddonscala/query/taskview/TaskView.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/query/src/main/scala/crossroad0201/dddonscala/query/taskview/TaskView.scala -------------------------------------------------------------------------------- /modules/query/src/main/scala/crossroad0201/dddonscala/query/taskview/TaskViewQueryProcessor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/modules/query/src/main/scala/crossroad0201/dddonscala/query/taskview/TaskViewQueryProcessor.scala -------------------------------------------------------------------------------- /project/Dependencies.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/project/Dependencies.scala -------------------------------------------------------------------------------- /project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version=0.13.16 2 | -------------------------------------------------------------------------------- /project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/project/plugins.sbt -------------------------------------------------------------------------------- /src/main/resources/db/migration/V1__create_tables.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crossroad0201/ddd-on-scala/HEAD/src/main/resources/db/migration/V1__create_tables.sql --------------------------------------------------------------------------------