Life without distributed transactions
Occasionally I get questions about the issue of transactional messaging – why is it so important, why does NServiceBus default to this behavior, and if we didn’t use it, what bad things could happen....
View ArticleUI Composition Techniques for Correct Service Boundires
One of the things which often throws people off when looking to identify their service boundaries is the UI design. Even those who know that the screen a user is looking at is the result of multiple...
View ArticleDon’t try to model the real world, it doesn’t exist.
Recently I’ve started talking more about modeling and its relation to the real world. Here’s where it all starts from: Don’t try to model the real world, it doesn’t exist. I know that that sounds like...
View ArticleCommon CQRS Abuses
Abuse #1 “I’m using CQRS because I need to scale.” While CQRS may be more scalable than other more traditional architectures, the use of asynchronous communication often complicates the user...
View ArticleUdi & Greg Reach CQRS Agreement
Hard to believe, isn’t it? Although both myself and Greg have been saying (quite publicly) for a long time now that we’re in agreement in about 99% of the DDD/CQRS content we talk about, it turns out...
View ArticleRecording of joint interview with Eric Evans
Last month both myself and Eric Evans spoke at a conference run by the International Association of Software Architects (IASA) in Madrid. Eric talked about DDD and I talked about CQRS. While the talks...
View ArticleWhy you should be using CQRS almost everywhere…
… but differently than the way most people have been using it. I think I’ve just about drove everybody crazy now with my apparent zigzagging on CQRS. Some people heard about CQRS first from one of my...
View ArticleInconsistent data, poor performance, or SOA – pick one
One of the things that surprises some developers that I talk to is that you don’t always get consistency even with end-to-end synchronous communication and a single database. This goes beyond things...
View ArticleWhen to avoid CQRS
It looks like that CQRS has finally “made it” as a full blown “best practice”. Please accept my apologies for my part in the overly-complex software being created because of it. I’ve tried to do what I...
View ArticleEntities, Transactions, and Broken Boundaries
One of the things I cover early on in my course is the problem with traditional layered architecture driving people to create a business logic layer made up of a bunch of inter-related entities. I see...
View ArticleCQRS, DDD, and NServiceBus video
Following the theme of my last few blog posts, this post will also be pointing you to videos of me talking. After I had finished speaking at QCon London last March, I sat down for a short interview...
View ArticleDDD Exchange London 2010
Last Friday I was in London for the DDD Exchange. It was great seeing Eric Evans again and Greg Young, who I haven’t seen for at least a couple of years. It might take some time for Skills Matter to...
View ArticleProgressive .NET Wrap-up
So, I’ve gotten back from a most enjoyable couple of days in Sweden where I gave two half-day tutorials, the first being the SOA and UI composition talk I gave at the European Virtual ALT.NET meeting...
View ArticleDon’t Delete – Just Don’t
After reading Ayende’s post advocating against “soft deletes” I felt that I should add a bit more to the topic as there were some important business semantics missing. As developers discuss the...
View ArticleMSDN Magazine Domain Model Article
My article on “employing the domain model pattern” has been published in the August edition of MSDN Magazine. Here’s a short excerpt: “In this article, we’ll go through the reasons to (and not to)...
View ArticleDon’t Create Aggregate Roots
My previous post on Domain Events left some questions about how aggregate roots should be created unanswered. It would actually be more accurate to say how aggregate roots should *not* be created. It...
View ArticleDomain Events – Salvation
I’ve been hearing from people that have had a great deal of success using the Domain Event pattern and the infrastructure I previously provided for it in Domain Events – Take 2. I’m happy to say that...
View ArticleALT.NET DDD Podcast
I finally got around to listening to the alt.net podcast on domain driven design and heard Rob Conery telling about his experiences with DDD. I’ve met a fair amount of developers that went through a...
View ArticleDDD & Many to Many Object Relational Mapping
The ability to map entity relationships is broadly supported by many O/RM tools. For some reason, though, many developers run into issues when trying to map a many-to-many relationship between...
View ArticleDomain Events – Take 2
Update: The next post in this series is now online here. My previous post on how to create fully encapsulated domain models introduced the concept of events as a core pattern of communication from the...
View Article