Spring modules without Spring Boot
The Spring Boot Starter auto-wires a saga state store, a snapshot store, and a Spring transaction executor for you. If you’re on Spring but not on the Occurrent starter (for example, you wire beans by hand or only need one of these pieces), each is also published as a standalone library artifact with no starter dependency:
- A Spring Data MongoDB
SagaStateStoreimplementation, used by Sagas:
<dependency> <groupId>org.occurrent</groupId> <artifactId>occurrent-saga-dsl-mongodb-spring</artifactId> <version>0.34.0</version></dependency>compile 'org.occurrent:occurrent-saga-dsl-mongodb-spring:0.34.0'libraryDependencies += "org.occurrent" % "occurrent-saga-dsl-mongodb-spring" % "0.34.0"@Grab(group='org.occurrent', module='occurrent-saga-dsl-mongodb-spring', version='0.34.0')[org.occurrent/occurrent-saga-dsl-mongodb-spring "0.34.0"]'org.occurrent:occurrent-saga-dsl-mongodb-spring:jar:0.34.0'<dependency org="org.occurrent" name="occurrent-saga-dsl-mongodb-spring" rev="0.34.0" />- A Spring Data MongoDB blocking
SnapshotStoreimplementation, used by Snapshots:
<dependency> <groupId>org.occurrent</groupId> <artifactId>occurrent-snapshot-dsl-mongodb-spring-blocking</artifactId> <version>0.34.0</version></dependency>compile 'org.occurrent:occurrent-snapshot-dsl-mongodb-spring-blocking:0.34.0'libraryDependencies += "org.occurrent" % "occurrent-snapshot-dsl-mongodb-spring-blocking" % "0.34.0"@Grab(group='org.occurrent', module='occurrent-snapshot-dsl-mongodb-spring-blocking', version='0.34.0')[org.occurrent/occurrent-snapshot-dsl-mongodb-spring-blocking "0.34.0"]'org.occurrent:occurrent-snapshot-dsl-mongodb-spring-blocking:jar:0.34.0'<dependency org="org.occurrent" name="occurrent-snapshot-dsl-mongodb-spring-blocking" rev="0.34.0" />- A Spring Data MongoDB reactive
SnapshotStoreimplementation, the reactive counterpart of the one above:
<dependency> <groupId>org.occurrent</groupId> <artifactId>occurrent-snapshot-dsl-mongodb-spring-reactor</artifactId> <version>0.34.0</version></dependency>compile 'org.occurrent:occurrent-snapshot-dsl-mongodb-spring-reactor:0.34.0'libraryDependencies += "org.occurrent" % "occurrent-snapshot-dsl-mongodb-spring-reactor" % "0.34.0"@Grab(group='org.occurrent', module='occurrent-snapshot-dsl-mongodb-spring-reactor', version='0.34.0')[org.occurrent/occurrent-snapshot-dsl-mongodb-spring-reactor "0.34.0"]'org.occurrent:occurrent-snapshot-dsl-mongodb-spring-reactor:jar:0.34.0'<dependency org="org.occurrent" name="occurrent-snapshot-dsl-mongodb-spring-reactor" rev="0.34.0" />- A generic Spring
TransactionExecutor(depends only onspring-tx, not MongoDB-specific), used for transactional side-effects:
<dependency> <groupId>org.occurrent</groupId> <artifactId>occurrent-application-service-transaction-spring</artifactId> <version>0.34.0</version></dependency>compile 'org.occurrent:occurrent-application-service-transaction-spring:0.34.0'libraryDependencies += "org.occurrent" % "occurrent-application-service-transaction-spring" % "0.34.0"@Grab(group='org.occurrent', module='occurrent-application-service-transaction-spring', version='0.34.0')[org.occurrent/occurrent-application-service-transaction-spring "0.34.0"]'org.occurrent:occurrent-application-service-transaction-spring:jar:0.34.0'<dependency org="org.occurrent" name="occurrent-application-service-transaction-spring" rev="0.34.0" />- A generic reactive Spring
ReactiveTransactionExecutor, the reactive counterpart of the one above:
<dependency> <groupId>org.occurrent</groupId> <artifactId>occurrent-application-service-transaction-spring-reactor</artifactId> <version>0.34.0</version></dependency>compile 'org.occurrent:occurrent-application-service-transaction-spring-reactor:0.34.0'libraryDependencies += "org.occurrent" % "occurrent-application-service-transaction-spring-reactor" % "0.34.0"@Grab(group='org.occurrent', module='occurrent-application-service-transaction-spring-reactor', version='0.34.0')[org.occurrent/occurrent-application-service-transaction-spring-reactor "0.34.0"]'org.occurrent:occurrent-application-service-transaction-spring-reactor:jar:0.34.0'<dependency org="org.occurrent" name="occurrent-application-service-transaction-spring-reactor" rev="0.34.0" />Construct each one directly and pass it wherever the corresponding interface is expected. The starter still gives you these beans for free if you’re using it, this is only for manual wiring.
