All Projects → fun-cqrs → Fun Cqrs

fun-cqrs / Fun Cqrs

Licence: other
Fun.CQRS is a Scala CQRS/ES framework. It provides the basic blocks to build event driven aggregates with Event Sourcing.

Programming Languages

scala
5932 projects

Labels

Projects that are alternatives of or similar to Fun Cqrs

Ddd Leaven Akka V2
Sample e-commerce system #Microservices #Akka #Reactive-DDD #CQRS
Stars: ✭ 362 (+10.7%)
Mutual labels:  akka, cqrs
Aecor
Pure functional event sourcing runtime
Stars: ✭ 299 (-8.56%)
Mutual labels:  akka, cqrs
Akka Ddd
Akka CQRS/ES framework
Stars: ✭ 330 (+0.92%)
Mutual labels:  akka, cqrs
Eventstore.akka.persistence
Event Store Journal for Akka Persistence
Stars: ✭ 72 (-77.98%)
Mutual labels:  akka, cqrs
akka-persistence-foundationdb
A replicated Akka Persistence journal backed by FoundationDB
Stars: ✭ 43 (-86.85%)
Mutual labels:  akka, cqrs
stem
Event sourcing framework based on ZIO and pluggable runtime (currently working with Akka cluster)
Stars: ✭ 22 (-93.27%)
Mutual labels:  akka, cqrs
Akkatecture
a cqrs and event sourcing framework for dotnet core using akka.net
Stars: ✭ 414 (+26.61%)
Mutual labels:  akka, cqrs
akka-cqrs-activator
Issue tracker PoC application written in Scala (Akka) and JavaScript (React) that demonstrates event sourcing and CQRS
Stars: ✭ 33 (-89.91%)
Mutual labels:  akka, cqrs
endless
Scala library to describe sharded and event sourced entities using tagless-final algebras
Stars: ✭ 70 (-78.59%)
Mutual labels:  akka, cqrs
akka-persistence-gcp-datastore
akka-persistence-gcp-datastore is a journal and snapshot store plugin for akka-persistence using google cloud firestore in datastore mode.
Stars: ✭ 18 (-94.5%)
Mutual labels:  akka, cqrs
Akka Persistence Cassandra
A replicated Akka Persistence journal backed by Apache Cassandra
Stars: ✭ 306 (-6.42%)
Mutual labels:  akka, cqrs
Store
🚀 NGXS - State Management for Angular
Stars: ✭ 3,191 (+875.84%)
Mutual labels:  cqrs
Inventory
Magento Inventory Project (a.k.a MSI)
Stars: ✭ 270 (-17.43%)
Mutual labels:  cqrs
Event Sourcing Cqrs Examples
Event Sourcing and CQRS in practice.
Stars: ✭ 265 (-18.96%)
Mutual labels:  cqrs
Aggregates.net
.NET event sourced domain driven design model via NServiceBus and GetEventStore
Stars: ✭ 261 (-20.18%)
Mutual labels:  cqrs
Khipu
An enterprise blockchain platform based on Ethereum
Stars: ✭ 301 (-7.95%)
Mutual labels:  akka
Cqrs Manager For Distributed Reactive Services
Experimental CQRS and Event Sourcing service
Stars: ✭ 289 (-11.62%)
Mutual labels:  cqrs
Node Cqrs Domain
Node-cqrs-domain is a node.js module based on nodeEventStore that. It can be very useful as domain component if you work with (d)ddd, cqrs, eventdenormalizer, host, etc.
Stars: ✭ 258 (-21.1%)
Mutual labels:  cqrs
Reactive
Reactive: Examples of the most famous reactive libraries that you can find in the market.
Stars: ✭ 256 (-21.71%)
Mutual labels:  akka
Reveno
⚡ High performance and low latency Event Sourcing/CQRS framework
Stars: ✭ 283 (-13.46%)
Mutual labels:  cqrs

Fun.CQRS

Build Status

Fun.CQRS is a Scala library for building CQRS/ES application. It provides the basic blocks to build event driven aggregates with Event Sourcing.

Fun.CQRS provides a out-of-the-box AkkaBackend and a InMemoryBackend for testing. However, it's designed as such that other backend implementations are possible. For instance, an alternative Akka backend based on Eventuate, a Slick backend or RxScala backend could be implementated and plugged in easily.

When using the AkkaBackend, Aggregates are immutable classes (case class) that live inside an Actor. You don't have to deal much with Akka and it's powerful abstractions, instead you concentrate in modeling your aggregate behavior and its protocol (Commands and Events). However you still need a minimal understanding of how Akka works and how to configure Akka Persistence to use your persistence plugin of choice.

That said, in Fun.CQRS, Aggregates are NOT Actors. The Actor System is used as a middleware to manage the aggregates, hold them in-memory, store events, recover aggregate state and generate read models through Event Projections

Migration Guide to v1.0.0

As we progress with the v1.0.0 we update the migration guide.

Please, make sure you follow all the instructions and broadly test your migrated project before using it with production data.

Project artifact

The artifacts are published to Sonatype Repository. Simply add the following to your build.sbt.

libraryDependencies += "org.funcqrs" %% "fun-cqrs-akka" % "1.0.2"

If you want to hack Fun.CQRS and develop your own backend, you can import only the core module. The core module does NOT include the Akka Backend.

libraryDependencies += "org.funcqrs" %% "fun-cqrs-core" % "1.0.2"

Documentation

There is a sample application under fun-cqrs/samples/raffle (up-to-date).

You can also watch these two videos to better understand the philosophy behind Fun.CQRS.

Devoxx 2015 (2h45m)
Scala Exchange 2015 (45m)
Note that this two presentations contains code that have been refactored in the mean time. However, you will get a good picture of the available features by watching the videos.

Contribution policy

Contributions via GitHub pull requests are gladly accepted from their original author. Along with any pull requests, please state that the contribution is your original work and that you license the work to the project under the project's open source license. Whether or not you state this explicitly, by submitting any copyrighted material via pull request, email, or other means you agree to license the material under the project's open source license and warrant that you have the legal authority to do so.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].