
DDD
Get flash to fully experience Pearltrees
Querying is a business concern
Event Sourcing
Capture all changes to an application state as a sequence of events. We can query an application's state to find out the current state of the world, and this answers many questions. However there are times when we don't just want to see where we are, we also want to know how we got there. Event Sourcing ensures that all changes to application state are stored as a sequence of events.Object-oriented systems are composed of many objects, each one fulfilling some set of responsibilities. Objects often need to collaborate with other objects in order to fulfill these responsibilities. You can better understand the responsibilities of objects and the collaborations between them by applying a concept known as object role stereotypes. This article will discuss the most common object role stereotypes by applying them to real-world examples and well-known design patterns. What's the Problem? Neolithic programmers lived in a state of simplicity.
Object Role Stereotypes
Employing the Domain Model Pattern
Eager Read Derivation
One of the interesting talks I attended at QCon San Francisco , was one given by Greg Young about a particular architecture he'd used on a recent system. Greg is a big fan of Domain Driven Design , in this case it needs to be used with a system that has to process a high transaction rate and provide data to lots of users. There were a number of things I found interesting about his design, particularly his use of Event Sourcing , but for this post I want to dwell on just one aspect - what I'll call Eager Read Derivation. These kinds of domain logic apply differently to updates than to reads.DSL
DDDD 1 [When to Message]
Just as a bit of a preamble, today is the first of what will hopefully be many days of me knocking out my blog backlog by actually taking an hour lunch and bringing my laptop to write. Unfortunately I currently have a backlog of over 40 posts … Hopefully in a few weeks that number will come down a bit. This is the first in many posts about DDDD (the D is for Distributed), oddly when talking about it here the extra D seems to make sense just about everywhere so I will leave it to you to figure out which one it is… I recently posted about using messaging in the domain in Mocks are a Code Smell.Lúcio Ferrão talks about making the software appealing to the business by using a visual language and an integrated environment supporting the entire life cycle of application development. John Musser discusses the state of open web APIs, remarking its growth over time, the current technological trends, the market leaders, and other API-related aspects. Erik Dörnenburg shares techniques for estimating code quality by collecting and analyzing data using the toxicity chart, metrics tree maps, size&complexity pyramid, complexity view, code city, etc. Java EE 7 includes cloud computing support to build applications for Java EE PaaS platforms. InfoQ spoke with Anil Gaur from Oracle, about cloud support in Java EE 7 and cloud development tools. The authors of this book share their experience and lessons learned while building an enterprise-wide Identity and Access Management system using an architectural approach called LIMA.
Domain Event-Driven Architecture
Repository Pattern vs. Transparent Persistence
Domain Driven on Naked CLR?
Again, a story from class. We are currently building a sample app together, and I get to see just how painful it is to try to build domain driven applications on the naked CLR. A lot of the stuff that makes DDD possible (rich object graphs, for instance) is entirely too hard to do without tool support. The end result is a transaction script pattern, where there is a chain of method calls that ends up with a call to the DB, usually to a stored procedure.How to create fully encapsulated Domain Models
Domain-Driven Design Resources
July 2011 Update: Domain-Driven Design: Links, News, Resources (1) I have my links collection on Domain-Driven Design, and I want to post it to this blog. This list is only a disorganized collection but I think that can be useful:Bryan Wheeler, Director Platform Development at msnbc.com “ Udi Dahan is the real deal. We brought him on site to give our development staff the 5-day “Advanced Distributed System Design” training. The course profoundly changed our understanding and approach to SOA and distributed systems. Consider some of the evidence: 1. Months later, developers still make allusions to concepts learned in the course nearly every day 2.
From CRUD to Domain-Driven Fluency
Recently there have been a long discussion in the ALT.Net mailing list about Auto Mocking Containers . We covered a lot of ground there and it is interesting to boot. What I wanted to talk about comes from this discussion. A while ago there was a big stick about Persistence Ignorance. I won't reiterate the arguments, but I want to expand the idea to other concepts as well.

