Version 3.6.0 is a reactive and a multiplatform
version of fmodel
libraries optimized for Event sourcing, CQRS, and Domain Modeling.
- https://search.maven.org/artifact/com.fraktalio.fmodel/domain/3.6.0/jar
- https://search.maven.org/artifact/com.fraktalio.fmodel/application-vanilla/3.6.0/jar
- https://search.maven.org/artifact/com.fraktalio.fmodel/application-arrow/3.6.0/jar
Maven coordinates
<dependency>
<groupId>com.fraktalio.fmodel</groupId>
<artifactId>domain</artifactId>
<version>3.6.0</version>
</dependency>
<dependency>
<groupId>com.fraktalio.fmodel</groupId>
<artifactId>application-vanilla</artifactId>
<version>3.6.0</version>
</dependency>
<dependency>
<groupId>com.fraktalio.fmodel</groupId>
<artifactId>application-arrow</artifactId>
<version>3.6.0</version>
</dependency>
- Reference guide
- Learn by example on the playground
- Read the blog
- Check the demos
- https://github.com/fraktalio/fmodel-spring-demo
- https://github.com/fraktalio/fmodel-ktor-demo
In this release, we have introduced a new component on the application layer EphemeralView
:
A view that is built "on the fly" and not maintained/materialized.
Potential use cases include:
- Lightweight aggregation for ad-hoc analysis
- Development and prototyping read models
- Building strongly consistent read models
- Supporting the "read your own rights" guarantee
The main algorithm is as follows:
suspend fun <S, E, Q, EV> EV.handle(query: Q): S where EV : ViewStateComputation<S, E>, EV : EphemeralViewRepository<E, Q> =
query.fetchEvents().fold(initialState) { s, e -> evolve(s, e) }
Events of type E
are fetched based on a query Q
, which are then used to build the respective view IView<S, E>
. The result of that computation S
is returned to the caller.
Thank you @DomenicDev for your contribution! You show that we can extend fmodel
to better fit our specific requirements, by composing domain
components in a different way. EphemeralView
is a common use case, so we include it in the library. Looking forward to what is next? :)
The full release notes:
What's Changed
- Update dependency org.jetbrains.kotlin.multiplatform to v2 by @renovate in #294
- Update actions/checkout digest to a5ac7e5 by @renovate in #293
- Update kotest to v5.9.1 by @renovate in #297
- Update dependency io.kotest.multiplatform to v5.9.1 by @renovate in #296
- Update plugin org.jetbrains.kotlinx.binary-compatibility-validator to v0.15.1 by @renovate in #302
- Update dependency gradle to v8.9 by @renovate in #295
- Update actions/checkout action to v4.1.7 by @renovate in #298
- Update actions/checkout digest to 692973e by @renovate in #299
- Update gradle/gradle-build-action action to v3.4.2 by @renovate in #300
- Update actions/upload-artifact action to v4.3.4 by @renovate in #301
- Update gradle/gradle-build-action action to v3.5.0 by @renovate in #303
- Revert "Update gradle/gradle-build-action action to v3.5.0" by @idugalic in #305
- Revert "Update gradle/gradle-build-action action to v3.4.2" by @idugalic in #307
- Revert "Update dependency gradle to v8.9" by @idugalic in #308
- Update plugin org.jetbrains.kotlinx.binary-compatibility-validator to v0.16.0 by @renovate in #304
- Update gradle/gradle-build-action action to v3.5.0 by @renovate in #306
- Update dependency gradle to v8.9 by @renovate in #309
- Update plugin org.jetbrains.kotlinx.binary-compatibility-validator to v0.16.2 by @renovate in #311
- Update plugin org.jetbrains.kotlinx.binary-compatibility-validator to v0.16.3 by @renovate in #313
- Update actions/upload-artifact action to v4.3.6 by @renovate in #312
- Update gradle/actions action to v4 by @renovate in #314
- Update actions/setup-java action to v4.2.2 by @renovate in #315
- Update dependency org.jetbrains.kotlin.multiplatform to v2.0.10 by @renovate in #316
- Update dependency gradle to v8.10 by @renovate in #317
- Update actions/upload-artifact action to v4.4.3 by @renovate in #319
- Update dependency gradle to v8.10.2 by @renovate in #320
- Update actions/setup-java action to v4.4.0 by @renovate in #321
- Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.9.0 by @renovate in #323
- Update actions/checkout action to v4.2.1 by @renovate in #324
- Update actions/checkout digest to eef6144 by @renovate in #326
- Update dependency io.kotest.multiplatform to v6 by @renovate in #325
- Update dependency org.jetbrains.kotlin.multiplatform to v2.0.21 by @renovate in #318
- Update actions/checkout action to v4.2.2 by @renovate in #329
- Update actions/setup-java action to v4.5.0 by @renovate in #330
- Update dependency gradle to v8.11 by @renovate in #332
- Update dependency gradle to v8.11.1 by @renovate in #333
- Update dependency org.jetbrains.kotlin.multiplatform to v2.1.0 by @renovate in #335
- EphemeralView implementation by @DomenicDev in #338
- Update dependency io.arrow-kt:arrow-core to v2 by @renovate in #336
New Contributors
- @DomenicDev made their first contribution in #338
Full Changelog: v3.5.1...v3.6.0