Skip to content

Releases: oskardudycz/EventSourcing.JVM

Extended distributed processes examples with Choreography and Process Manager

25 Feb 06:59
Compare
Choose a tag to compare

Upgraded to Spring Boot 3 and EventStoreDB

05 Jan 11:50
Compare
Choose a tag to compare
  • Updated to the Spring Boot 3.
  • Migrated samples and workshops to EventStoreDB client v4 and EventStoreDB Docker image to 22.10 (the latest LTS).
  • Bumped other dependencies.

See more in #38.

Introduction to Event Sourcing in Java - Self Paced Kit

11 Jul 00:10
Compare
Choose a tag to compare

Event Sourcing is perceived as a complex pattern. Some believe that it's like Nessie, everyone's heard about it, but rarely seen it. In fact, Event Sourcing is a pretty practical and straightforward concept. It helps build predictable applications closer to business. Nowadays, storage is cheap, and information is priceless. In Event Sourcing, no data is lost.

The workshop aims to build the knowledge of the general concept and its related patterns for the participants. The acquired knowledge will allow for the conscious design of architectural solutions and the analysis of associated risks.

The emphasis will be on a pragmatic understanding of architectures and applying it in practice using Marten and EventStoreDB.

  1. Introduction to Event-Driven Architectures. Differences from the classical approach are foundations and terminology (event, event streams, command, query).
  2. What is Event Sourcing, and how is it different from Event Streaming. Advantages and disadvantages.
  3. Write model, data consistency guarantees on examples from Marten and EventStoreDB.
  4. Various ways of handling business logic: Aggregates, Command Handlers, functional approach.
  5. Projections, best practices and concerns for building read models from events on the examples from Marten and EventStoreDB.
  6. Challenges in Event Sourcing and EDA: deliverability guarantees, sequence of event handling, idempotency, etc.
  7. Saga, Choreography, Process Manager, distributed processes in practice.
  8. Event Sourcing in the context of application architecture, integration with other approaches (CQRS, microservices, messaging, etc.).
  9. Good and bad practices in event modelling.
  10. Event Sourcing on production, evolution, events' schema versioning, etc.

You can do the workshop as a self-paced kit. That should give you a good foundation for starting your journey with Event Sourcing and learning tools like Marten and EventStoreDB. If you'd like to get full coverage with all nuances of the private workshop, feel free to contact me via email.

Read also more in my article Introduction to Event Sourcing - Self Paced Kit.

Exercises

  1. Events definition.
  2. Getting State from events.
  3. Appending Events:
  4. Getting State from events
  5. Business logic:
  6. Optimistic Concurrency:
  7. Projections:

See PR: #29

Distributed Processes in Event Sourcing

09 Jul 09:22
Compare
Choose a tag to compare

Shows how to handle distributed processes in Event Sourcing in practice. Explains various use cases, like:

  • batch processing,
  • saga vs process managers,
  • distributed processes in the single module and across boundaries,
  • internal vs external events,
  • compensating failures,
  • implementation of command and event bus in EventStoreDB.

See the code and more detailed description: https://github.com/oskardudycz/EventSourcing.JVM/tree/main/samples/distributed-processes

See the PR: #24.

Read more in How to ensure uniqueness in Event Sourcing.

Added samples of how to ensure uniqueness in Event Sourcing

07 Jul 13:25
Compare
Choose a tag to compare

Shows how to handle unique constraint checks in an event-sources system. Explains various techniques like:

  • talking to business,
  • stream id design,
  • reservation pattern.

See more in:

Added sample showing how to apply stream transformations for events versioning with ESDB

03 Jul 14:23
Compare
Choose a tag to compare

Added sample showing how to apply stream transformations for events versioning with ESDB, see: https://github.com/oskardudycz/EventSourcing.JVM/blob/main/samples/events-versioning/src/test/java/io/eventdriven/eventsversioning/transformations/esdb/StreamTransformationsTests.java

Besides that:

  • Added paths to GitHub Actions to trigger only when changes were made to a specific sample folder,
  • did a minor cleanup with redundant code in the Events Versioning sample.

Added Event Schema Versioning samples

02 Jul 20:16
Compare
Choose a tag to compare

Upgraded EventStoreDB client to 3.0.0

01 Jul 19:26
Compare
Choose a tag to compare

Upgraded:

  • EventStoreDB client to 3.0.0
  • EventStoreDB Docker image to 21.10.5
  • other dependencies

Besides that moved tests project into a dedicated stream metadata sample.

See more in:

Added "Practical introduction to Event Sourcing with Spring Boot and EventStoreDB" talk

26 Apr 11:12
Compare
Choose a tag to compare

Added link to "Practical introduction to Event Sourcing with Spring Boot and EventStoreDB" webinar. Watch it 👇

Practical introduction to Event Sourcing with Spring Boot and EventStoreDB

Besides that:

  • Updated dependencies,
  • Applied tiny refactorings in various places

Added "Let's build the worst Event Sourcing system!" talk

02 Apr 11:17
Compare
Choose a tag to compare

Added link to "Let's build the worst Event Sourcing system!" talk I gave at EventSourcing Live 2021 conference.
Watch it 👇

Let's build the worst Event Sourcing system!