diff --git a/README.md b/README.md
index 8bc5cc09..80379e53 100644
--- a/README.md
+++ b/README.md
@@ -13,9 +13,11 @@ Tutorial, practical samples and other resources about Event Sourcing in JVM. See
- [Retrieving the current state from events](#retrieving-the-current-state-from-events)
- [Event Store](#event-store)
- [Videos](#videos)
+ - [Practical introduction to Event Sourcing with Spring Boot and EventStoreDB](#practical-introduction-to-event-sourcing-with-spring-boot-and-eventstoredb)
- [Let's build the worst Event Sourcing system!](#lets-build-the-worst-event-sourcing-system)
- [The Light and The Dark Side of the Event-Driven Design](#the-light-and-the-dark-side-of-the-event-driven-design)
- [Conversation with Yves Lorphelin about CQRS](#conversation-with-yves-lorphelin-about-cqrs)
+ - [How to deal with privacy and GDPR in Event-Sourced systems](#how-to-deal-with-privacy-and-gdpr-in-event-sourced-systems)
- [Support](#support)
- [Samples](#samples)
- [Event Sourcing with Spring Boot and EventStoreDB](#event-sourcing-with-spring-boot-and-eventstoredb)
@@ -186,6 +188,10 @@ Read more in my article:
## Videos
+### Practical introduction to Event Sourcing with Spring Boot and EventStoreDB
+
+
+
### Let's build the worst Event Sourcing system!
@@ -290,6 +296,7 @@ Read also more on the **Event Sourcing** and **CQRS** topics in my [blog](https:
- 📝 [How using events helps in a teams' autonomy](https://event-driven.io/en/how_using_events_help_in_teams_autonomy/?utm_source=event_sourcing_jvm)
- 📝 [What texting your Ex has to do with Event-Driven Design?](https://event-driven.io/en/what_texting_ex_has_to_do_with_event_driven_design/?utm_source=event_sourcing_jvm)
- 📝 [What if I told you that Relational Databases are in fact Event Stores?](https://event-driven.io/en/relational_databases_are_event_stores/?utm_source=event_sourcing_jvm)
+- 📝 [Are Temporal Tables an alternative to Event Sourcing?](https://event-driven.io/en/temporal_tables_and_event_sourcing/?utm_source=event_sourcing_jvm)
- 📝 [Optimistic concurrency for pessimistic times](https://event-driven.io/en/optimistic_concurrency_for_pessimistic_times/?utm_source=event_sourcing_jvm)
- 📝 [Outbox, Inbox patterns and delivery guarantees explained](https://event-driven.io/en/outbox_inbox_patterns_and_delivery_guarantees_explained/?utm_source=event_sourcing_jvm)
- 📝 [Saga and Process Manager - distributed processes in practice](https://event-driven.io/en/saga_process_manager_distributed_transactions/?utm_source=event_sourcing_jvm)
diff --git a/samples/event-sourcing-esdb-aggregates/README.md b/samples/event-sourcing-esdb-aggregates/README.md
index a5760d80..1e58a12f 100644
--- a/samples/event-sourcing-esdb-aggregates/README.md
+++ b/samples/event-sourcing-esdb-aggregates/README.md
@@ -12,6 +12,12 @@ The presented use case is Shopping Cart flow:
Technically it's modelled as Web API written in [Spring Boot](https://spring.io/projects/spring-boot) and [Java 17](https://www.oracle.com/java/technologies/downloads/).
+## Watch the video
+
+Practical introduction to Event Sourcing with Spring Boot and EventStoreDB
+
+
+
## Main assumptions
- explain basics of Event Sourcing, both from the write model ([EventStoreDB](https://developers.eventstore.com/)) and read model part ([PostgreSQL](https://www.postgresql.org/) and [Spring Data JPA](https://spring.io/projects/spring-data-jpa)),
- present that you can join classical approach with Event Sourcing without making a massive revolution,
diff --git a/samples/event-sourcing-esdb-aggregates/build.gradle b/samples/event-sourcing-esdb-aggregates/build.gradle
index 8f441fda..de343e31 100644
--- a/samples/event-sourcing-esdb-aggregates/build.gradle
+++ b/samples/event-sourcing-esdb-aggregates/build.gradle
@@ -14,27 +14,27 @@ repositories {
dependencies {
// Spring Boot Web
- implementation 'org.springframework.boot:spring-boot-starter-websocket:2.6.4'
+ implementation 'org.springframework.boot:spring-boot-starter-web:2.6.7'
// Validation
- implementation 'org.springframework.boot:spring-boot-starter-validation:2.6.4'
+ implementation 'org.springframework.boot:spring-boot-starter-validation:2.6.7'
// Retry policy
- implementation 'org.springframework.retry:spring-retry:1.3.2'
+ implementation 'org.springframework.retry:spring-retry:1.3.3'
// Swagger
- implementation 'org.springdoc:springdoc-openapi-ui:1.6.6'
+ implementation 'org.springdoc:springdoc-openapi-ui:1.6.7'
// Serialisation
- implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.2'
+ implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.2.2'
// Log4J logging
- implementation 'org.springframework.boot:spring-boot-starter-log4j2:2.6.4'
+ implementation 'org.springframework.boot:spring-boot-starter-log4j2:2.6.7'
// EventStoreDB client
- implementation 'com.eventstore:db-client-java:2.0.0'
+ implementation 'com.eventstore:db-client-java:3.0.0'
// Postgres and JPA for read models
- implementation 'org.springframework.boot:spring-boot-starter-data-jpa:2.6.4'
- implementation 'org.postgresql:postgresql:42.3.3'
- implementation 'junit:junit:4.13.1'
+ implementation 'org.springframework.boot:spring-boot-starter-data-jpa:2.6.7'
+ implementation 'org.postgresql:postgresql:42.3.4'
+ implementation 'junit:junit:4.13.2'
// Test frameworks
testImplementation 'org.springframework.boot:spring-boot-starter-test'
@@ -42,7 +42,7 @@ dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
testImplementation 'org.junit.platform:junit-platform-launcher:1.8.2'
- testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.13.2'
+ testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.13.2.2'
}
configurations {
diff --git a/samples/event-sourcing-esdb-simple/README.md b/samples/event-sourcing-esdb-simple/README.md
index 9223e399..70692cbe 100644
--- a/samples/event-sourcing-esdb-simple/README.md
+++ b/samples/event-sourcing-esdb-simple/README.md
@@ -12,6 +12,12 @@ The presented use case is Shopping Cart flow:
Technically it's modelled as Web API written in [Spring Boot](https://spring.io/projects/spring-boot) and [Java 17](https://www.oracle.com/java/technologies/downloads/).
+## Watch the video
+
+Practical introduction to Event Sourcing with Spring Boot and EventStoreDB
+
+
+
## Main assumptions
- explain basics of Event Sourcing, both from the write model ([EventStoreDB](https://developers.eventstore.com/)) and read model part ([PostgreSQL](https://www.postgresql.org/) and [Spring Data JPA](https://spring.io/projects/spring-data-jpa)),
- present that you can join classical approach with Event Sourcing without making a massive revolution,
diff --git a/samples/event-sourcing-esdb-simple/build.gradle b/samples/event-sourcing-esdb-simple/build.gradle
index 8f441fda..eb366910 100644
--- a/samples/event-sourcing-esdb-simple/build.gradle
+++ b/samples/event-sourcing-esdb-simple/build.gradle
@@ -14,27 +14,27 @@ repositories {
dependencies {
// Spring Boot Web
- implementation 'org.springframework.boot:spring-boot-starter-websocket:2.6.4'
+ implementation 'org.springframework.boot:spring-boot-starter-web:2.6.7'
// Validation
- implementation 'org.springframework.boot:spring-boot-starter-validation:2.6.4'
+ implementation 'org.springframework.boot:spring-boot-starter-validation:2.6.7'
// Retry policy
- implementation 'org.springframework.retry:spring-retry:1.3.2'
+ implementation 'org.springframework.retry:spring-retry:1.3.3'
// Swagger
- implementation 'org.springdoc:springdoc-openapi-ui:1.6.6'
+ implementation 'org.springdoc:springdoc-openapi-ui:1.6.7'
// Serialisation
- implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.2'
+ implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.2.2'
// Log4J logging
- implementation 'org.springframework.boot:spring-boot-starter-log4j2:2.6.4'
+ implementation 'org.springframework.boot:spring-boot-starter-log4j2:2.6.7'
// EventStoreDB client
implementation 'com.eventstore:db-client-java:2.0.0'
// Postgres and JPA for read models
- implementation 'org.springframework.boot:spring-boot-starter-data-jpa:2.6.4'
- implementation 'org.postgresql:postgresql:42.3.3'
- implementation 'junit:junit:4.13.1'
+ implementation 'org.springframework.boot:spring-boot-starter-data-jpa:2.6.7'
+ implementation 'org.postgresql:postgresql:42.3.4'
+ implementation 'junit:junit:4.13.2'
// Test frameworks
testImplementation 'org.springframework.boot:spring-boot-starter-test'
@@ -42,7 +42,7 @@ dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
testImplementation 'org.junit.platform:junit-platform-launcher:1.8.2'
- testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.13.2'
+ testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.13.2.2'
}
configurations {