How Would You Name CQRS + DDDD + Cloud Architecture?
What name would you give to architecture and development approach that:
- is based on the DDD methodology and thinking;
- uses CQRS mental model for structuring and understanding the system we are working on;
- leverages Event-driven approaches to actually address challenges of integration, reporting and scaling within such an architecture;
- factors in peculiarities of platform-based cloud computing environments (and design-time constraints these result in);
- starts with a small system and explains how to grow it in scale and complexity, as needed (as opposed to DDDD that focuses in detail on migration of existing legacy systems towards the CQRS/DDD paradigm);
- preferably does not have 'CQRS' in the name.
Here are some options:
- Distributed CQRS - by Jake Scott
- Circus by Harry Mcintyre
- Cloud CQRS - by Shiju Varghese
- Condor and D4C2 - by Mynkow
- Stratus - by Jonathan Adams
Any other ideas?
Why am I asking this question? Well, I still can't figure the right name for this type of CQRS Architecture (and development methodology on top of it). Since there is no name, trade-offs and differences between DDDD and "that cloud CQRS thing" can't be clearly expressed and reiterated, blurring together the actual theoretical concepts (which are the same) and practical peculiarities of different implementations. This leads to bigger confusion in articles and the way they structure and express the ideas within. However, I would love to have them as clear and helpful as possible.
As always, any feedback and all comments are welcome and appreciated!
Wednesday, November 24, 2010 at 14:07
Reader Comments (20)
Distributed CQRS? Or Uber complicated Scalability :P
Jake, thanks for the suggestions))
Although I personally wouldn't call Uber-complicated something that even a CS student can use to build a simple system in the clouds (while knowing that complexity and scalability challenges will have straightforward answer down the road, should she need to handle them ))
Cirqus is a snappy, almost correct name
I suggest Cloud CQRS
Harry,
hm, there is something in that name. In addition to the interplay with CQRS, it also matches definition of "circular architecture".
Thank you for the suggestion!
Shiju,
Yes, that's my favorite term up to this point! However it combines two buzz-words at once - I found this to be blurring the actual idea a bit, while explaining it to the others.
What do you think?
1) D4C2 = DDDD + CQRS + Cloud
2) condor = impressive bird which lives high in the "cloud"
Mynkow,
That's an interesting approach with D4C2 - reminds a bit of the chess games and Amazon naming (EC2, S3).
Thanks you for sharing!
What about Stratus
From wikipedia
Clouds of the genus Stratus form in low horizontal layers having a ragged or uniform base. Ragged stratus often forms in precipitation while more uniform stratus forms in maritime or other moist stable air mass conditions. The latter often produces drizzle.
RavenCQRS
;)
Jonathan,
Wow, that's an interesting idea and a fresh direction of thinking. Stratus... I will need to think about this interplay of words.
Thank you for the idea!
John, and include AGPL license forcing you to pay money, whenever you want to use anything in a commercial project, just like RavenDB does? No way, dude ))
Hopefully you get I was being playful.
In any event, though I don't think it's a totally pointless exercise, my point is that as long as it works, the name is essentially irrelevant.
Yahoo? eBay? Hell, Coca-cola?
Those names evoke certain things for us not because of their names, but really by what they provide.
John, yes, I did get a joke )) Pardon my own sense of humor ))
As for the naming exercise: I agree, that brand names can get somewhat detached from their literal meaning (if there was one) and get a new one by the means of popularity.
However from the teaching and learning perspective, I think it's much better, when the name is as close to the original dictionary meaning as possible. Repository, Aggregate Root, Bounded Context, - are the examples of diligently worked names that stick. And their literal meaning helps to learn and understand domain at hand faster, than say: "Bank pattern", "Gang Leader" and "Consistency Radius".
What do you think?
I like the "stratus" suugestion. Stratus is typically above the typical clouds (cumulus), so it makes sense :-)
Might get confused with Adobe Stratus (although it has recently been renamed Cirrus for some reason)
I don't think it is totally without merit, but I wonder if you quickly hit a level of diminishing returns.
Someone unfamiliar with CQRS is likely not to get any of the connotations of the name you come up with. Someone familiar with CQRS is likely to be hindered by whatever name you come up with.
Harry, I wonder if this rename has to do anything with cirrostratus clouds.
John, you've got a valid point here. Especially if we look at the "come up with a name" process from the point of time spent that could've be invested into working on the articles))
However, do you think it's that impossible to come up with a name (or an abbreviation) that will help any new learners and also help people already familiar with the subject?
More or less.
For instance, I like 'Stratus' but I'm just as likely to think of Trish or Dodge when I hear the name.
"D4C2" reminds me of "R2D2."
Etc.