├── .gitignore ├── README.md ├── docker-compose.yml ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── img ├── cqrs-1.png ├── cqrs-2.png ├── domain-1.png ├── domain-2.png ├── es-cqrs-state-oriented-persistence.png ├── event-sourcing-1.png ├── event-sourcing-2.png ├── event-sourcing-snapshotting.png ├── kafka-logo.png ├── kafka-topics-architecture.png ├── ksqldb-1.png ├── ksqldb-2.png ├── ksqldb-event-store-1.png ├── ksqldb-event-store-2.png ├── ksqldb-logo.png └── ksqldb-naive-event-store.png ├── nginx.conf ├── queries.sql ├── settings.gradle ├── src ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── eventsourcing │ │ │ └── ksqldb │ │ │ ├── KsqldbEventSourcingApplication.java │ │ │ ├── config │ │ │ └── KafkaTopicsConfig.java │ │ │ ├── controller │ │ │ └── OrdersController.java │ │ │ ├── domain │ │ │ ├── integration │ │ │ │ ├── OrderIntegrationEvent.java │ │ │ │ └── Waypoint.java │ │ │ ├── readmodel │ │ │ │ ├── ErrorMessage.java │ │ │ │ ├── Order.java │ │ │ │ └── Waypoint.java │ │ │ └── writemodel │ │ │ │ ├── Order.java │ │ │ │ ├── OrderStatus.java │ │ │ │ ├── Waypoint.java │ │ │ │ ├── command │ │ │ │ ├── AcceptOrderCommand.java │ │ │ │ ├── CancelOrderCommand.java │ │ │ │ ├── CompleteOrderCommand.java │ │ │ │ └── PlaceOrderCommand.java │ │ │ │ └── event │ │ │ │ ├── OrderAcceptedEvent.java │ │ │ │ ├── OrderCancelledEvent.java │ │ │ │ ├── OrderCompletedEvent.java │ │ │ │ └── OrderPlacedEvent.java │ │ │ ├── eventsourcing │ │ │ ├── Aggregate.java │ │ │ ├── Command.java │ │ │ ├── ErrorEvent.java │ │ │ ├── ErrorMessage.java │ │ │ └── Event.java │ │ │ ├── mapper │ │ │ └── OrderMapper.java │ │ │ ├── repository │ │ │ └── OrderRepository.java │ │ │ └── service │ │ │ ├── EventJsonSerde.java │ │ │ ├── OrderCommandAndEventListener.java │ │ │ ├── OrderCommandHandler.java │ │ │ ├── OrderCommandSender.java │ │ │ ├── OrderEventHandler.java │ │ │ ├── OrderEventPublisher.java │ │ │ ├── OrderIntegrationEventSender.java │ │ │ └── OrderReadModelUpdater.java │ └── resources │ │ └── application.yml └── test │ ├── java │ └── com │ │ └── example │ │ └── eventsourcing │ │ └── ksqldb │ │ └── KsqldbEventSourcingApplicationTests.java │ └── resources │ └── application-test.yml └── test.sh /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/README.md -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/gradlew.bat -------------------------------------------------------------------------------- /img/cqrs-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/cqrs-1.png -------------------------------------------------------------------------------- /img/cqrs-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/cqrs-2.png -------------------------------------------------------------------------------- /img/domain-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/domain-1.png -------------------------------------------------------------------------------- /img/domain-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/domain-2.png -------------------------------------------------------------------------------- /img/es-cqrs-state-oriented-persistence.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/es-cqrs-state-oriented-persistence.png -------------------------------------------------------------------------------- /img/event-sourcing-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/event-sourcing-1.png -------------------------------------------------------------------------------- /img/event-sourcing-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/event-sourcing-2.png -------------------------------------------------------------------------------- /img/event-sourcing-snapshotting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/event-sourcing-snapshotting.png -------------------------------------------------------------------------------- /img/kafka-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/kafka-logo.png -------------------------------------------------------------------------------- /img/kafka-topics-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/kafka-topics-architecture.png -------------------------------------------------------------------------------- /img/ksqldb-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/ksqldb-1.png -------------------------------------------------------------------------------- /img/ksqldb-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/ksqldb-2.png -------------------------------------------------------------------------------- /img/ksqldb-event-store-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/ksqldb-event-store-1.png -------------------------------------------------------------------------------- /img/ksqldb-event-store-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/ksqldb-event-store-2.png -------------------------------------------------------------------------------- /img/ksqldb-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/ksqldb-logo.png -------------------------------------------------------------------------------- /img/ksqldb-naive-event-store.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/img/ksqldb-naive-event-store.png -------------------------------------------------------------------------------- /nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/nginx.conf -------------------------------------------------------------------------------- /queries.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/queries.sql -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'ksqldb-event-sourcing' 2 | -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/KsqldbEventSourcingApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/KsqldbEventSourcingApplication.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/config/KafkaTopicsConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/config/KafkaTopicsConfig.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/controller/OrdersController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/controller/OrdersController.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/integration/OrderIntegrationEvent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/integration/OrderIntegrationEvent.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/integration/Waypoint.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/integration/Waypoint.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/readmodel/ErrorMessage.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/readmodel/ErrorMessage.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/readmodel/Order.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/readmodel/Order.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/readmodel/Waypoint.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/readmodel/Waypoint.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/Order.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/Order.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/OrderStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/OrderStatus.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/Waypoint.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/Waypoint.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/command/AcceptOrderCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/command/AcceptOrderCommand.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/command/CancelOrderCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/command/CancelOrderCommand.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/command/CompleteOrderCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/command/CompleteOrderCommand.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/command/PlaceOrderCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/command/PlaceOrderCommand.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/event/OrderAcceptedEvent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/event/OrderAcceptedEvent.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/event/OrderCancelledEvent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/event/OrderCancelledEvent.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/event/OrderCompletedEvent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/event/OrderCompletedEvent.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/event/OrderPlacedEvent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/domain/writemodel/event/OrderPlacedEvent.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/eventsourcing/Aggregate.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/eventsourcing/Aggregate.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/eventsourcing/Command.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/eventsourcing/Command.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/eventsourcing/ErrorEvent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/eventsourcing/ErrorEvent.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/eventsourcing/ErrorMessage.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/eventsourcing/ErrorMessage.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/eventsourcing/Event.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/eventsourcing/Event.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/mapper/OrderMapper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/mapper/OrderMapper.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/repository/OrderRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/repository/OrderRepository.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/service/EventJsonSerde.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/service/EventJsonSerde.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/service/OrderCommandAndEventListener.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/service/OrderCommandAndEventListener.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/service/OrderCommandHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/service/OrderCommandHandler.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/service/OrderCommandSender.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/service/OrderCommandSender.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/service/OrderEventHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/service/OrderEventHandler.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/service/OrderEventPublisher.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/service/OrderEventPublisher.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/service/OrderIntegrationEventSender.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/service/OrderIntegrationEventSender.java -------------------------------------------------------------------------------- /src/main/java/com/example/eventsourcing/ksqldb/service/OrderReadModelUpdater.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/java/com/example/eventsourcing/ksqldb/service/OrderReadModelUpdater.java -------------------------------------------------------------------------------- /src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/main/resources/application.yml -------------------------------------------------------------------------------- /src/test/java/com/example/eventsourcing/ksqldb/KsqldbEventSourcingApplicationTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/src/test/java/com/example/eventsourcing/ksqldb/KsqldbEventSourcingApplicationTests.java -------------------------------------------------------------------------------- /src/test/resources/application-test.yml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eugene-khyst/ksqldb-event-souring/HEAD/test.sh --------------------------------------------------------------------------------