ThembisileNGQ / Akkatecture

a cqrs and event sourcing framework for dotnet core using akka.net
https://akkatecture.net
MIT License
524 stars 54 forks source link

Akka.CQRS Comparison #142

Closed rastreus closed 5 years ago

rastreus commented 5 years ago

I am more curious than anything else. Feel free to close this issue if it doesn't create constructive conversation.

Have you had an opportunity to look at the Akka.CQRS reference architecture (https://github.com/petabridge/akkadotnet-cluster-workshop) that @Aaronontheweb and the Petabridge team recently created for their Akka.NET training tour? If so, how does the CQRS architecture facilitated by the Akkatecture framework compare (and contrast) to Petabridge's example?

Lutando commented 5 years ago

I don't think that there is a need for a comparison. Akka.CQRS is a reference architecture that employs all the best practices for making these kind of systems. The language used in the reference architecture for me is more aligned with how you would describe an actor system

As for Akkatecture, we try to take an approach that aligns with DDD / ES / CQRS concepts and we use that language. in other words, we use terms that other domain driven design practitioners are used to.

As a big ups to the Akka.CQRS project I think that it is pretty neat. Akka.NET is already a decent framework for building CQRS & event sourced solutions, all this project does is impose some honest defaults that I find quite sane.

There is a lot of congruence between persistent actors and event sourced aggregates e.g that IMHO some folks don't see it as obvious as I do, which is why I made this project. I also made it because, as someone who has implemented a bunch of these systems, I see myself writing the same code over and over again across each of these projects to enable their business requirements. This project is a distillation of all of those things that I've picked up along the way.

My shortest answer to your question might be that a framework like Lagom is built on (jvm) akka just like how this project is build on dotnet akka. In some sense, Lagom is the the same animal on the JVM Akka as Akkatecture tries to be on dotnet.

If i could play a little bit of devils advocate to my own detriment, using this project to realize your goals is more restrictive with respect what you can do in the actor model but it does put you down on the right path to designing systems that conform to the principles of domain driven design. It is up to you or not if you want to be in this world.

My personal opinion though, if you wanted to see how a business system built on akka should look like, go to the reference project. it ticks all the boxes.

rastreus commented 5 years ago

@Lutando Thank you for taking the time to write a thorough response. I appreciate it.

Akkatecture seems like a valuable, opinionated framework for the Akka.NET community.

Lutando commented 5 years ago

Issue is closed but anyone is welcome to reopen and discuss