Occurrent 0.10.0 is now available with bug fixes and other improvements. The EventStore API has changed somewhat, but it should still be backward compatible. What’s changed is that the “write” methods
no longer returns void
but an instance of WriteResult
. The WriteResult
contains the id and version of the stream. The version can be very useful when implementing e.g. a REST API so that you
can implement a “read your own write” strategy. Expect more data to be added to WriteResult
in the future. This has been implemented for all event stores (including the reactive implementations).
Changelog:
- The event store API’s now returns an instance of
org.occurrent.eventstore.api.WriteResult
when writing events to the event store (previouslyvoid
was returned). TheWriteResult
instance contains the stream id and the new stream version of the stream. The reason for this change is to make it easier to implement use cases such as “read your own writes”. - The blocking ApplicationService
org.occurrent.application.service.blocking.ApplicationService
now returnsWriteResult
instead ofvoid
. - Fixed bug in
InMemoryEventStore
that accidentally could skip version numbers when new events were inserted into the database. - Improved detection of duplicate cloud event’s in all MongoDB event stores
- Fixed a bug where
WriteConditionNotFulfilledException
was not thrown when a stream was updated by several threads in parallel (fixed for all mongodb event store implementations) - Upgraded Spring Boot from 2.4.2 to 2.4.4
- Upgraded reactor from 3.4.2 to 3.4.4
- Upgraded spring-data-mongodb from 3.1.1 to 3.1.7
- Upgraded lettuce-core from 6.0.1 to 6.1.0
- Upgraded mongo java client from 4.1.1 to 4.2.2
- Upgraded spring-aspects from 5.2.9.RELEASE to 5.3.5
- Upgraded spring-retry from 1.3.0 to 1.3.1
- Upgraded kotlin from 1.4.31 to 1.4.32
- Upgraded kotlinx-collections-immutable-jvm from 0.3.2 to 0.3.4