InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Interview: Greg Young Discusses State Transitions in Domain-Driven Design and DDD Best Practices

Posted by Srini Penchikala on Jan 30, 2009

Sections
Architecture & Design
Topics
Architecture ,
Domain-Driven Design
Tags
Domain Modeling ,
Domain Driven Design ,
QCon San Francisco 2008 ,
Best Practices ,
QCon

In this interview recorded at QCon San Francisco 2008 conference, Greg Young talked about how his team has been using Domain-Driven Design (DDD) concepts in their projects. He discussed how to manage domain state transitions in a Domain-Driven Design project using two different design models, one for reading data from datastore and the other for write-only command operations. He also talked about Command Query Separation (CQS) design concept to keep design cleaner and easier to test and maintain and the best practices that developers can use when working on DDD projects.

Watch: Greg Young Discusses State Transitions in Domain-Driven Design and DDD Best Practices (36 min.)

In the interview, Greg covered the following topics:

  • State Transition in the Domain Model
  • Role of Dependency Injection (DI) and Aspect-Oriented Programming (AOP) in Domain-Driven Design
  • Domain Object Validation
  • Domain-Driven Design in .NET world
  • Event Stream Processing (ESP) in DDD

 

Srini Penchikala currently works as Security Architect and has 17 yrs of experience in software product management.

Greg Young on DDD by Ryan Riley Posted
Re: Greg Young on DDD by Robin Howlett Posted
Greg Young on DDD by Jean-Christophe Grégoire Posted
Holy heck by Raoul Duke Posted
What about in memory edits? by Ian Jones Posted
What about in memory edits? by Ian Jones Posted
Re: What about in memory edits? by Peng Sunny Posted
Check this out as well by Nicholas Sterling Posted
Re: Check this out as well by Nicholas Sterling Posted
  1. Back to top

    Greg Young on DDD

    by Ryan Riley

    Great interview! A lot of what Greg said really resonates with a lot of things I've been trying to do, and his statements certainly cleared up some thoughts I was having on a) immutability, b) AOP, and c) the use of DTOs.

    Thanks!

  2. Back to top

    Re: Greg Young on DDD

    by Robin Howlett

    This is a superb video; I have to admit viewing this interview I had very limited knowledge about DDD, but Greg succinctly and clearly outlined his understanding and expertise. The concepts outlined are of immense value - great job.

  3. Back to top

    Greg Young on DDD

    by Jean-Christophe Grégoire

    Great interview !!

  4. Back to top

    Holy heck

    by Raoul Duke

    What a wonderful interview. It is so rare to come across people who can clearly state what is obviously (in retrospect) true and useful. I kinda hate all things financial, but judging by this interview I'd happily go to work for them. We surely need more of this kind of intelligence.

  5. Back to top

    What about in memory edits?

    by Ian Jones

    When using CQS in domain driven design how would you query changes made to the domain object when the domain object changes are not persisted to the database and are only in memory? i.e. I want to make a change to a customer address, I issue a command to the customer domain object, I save the customer domain object to session. I then want to update the screen with the changes. Only later when the user is happy with the total of the changes do they commit the data to the database.
    A couple of possible solutions I can think of is to have a session repository, or a way of getting a query object from the domain object.
    Or does CQS not apply to this type of scenario?

  6. Back to top

    What about in memory edits?

    by Ian Jones

  7. Back to top

    Re: What about in memory edits?

    by Peng Sunny

    JdonFramework is a DDD framework , it supports model in memory, and CQRS domain events + Asynchronous, more details jdon.dev.java.net/

  8. Back to top

    Check this out as well

    by Nicholas Sterling

    At Scala Days 2011, Erik Rozendaal gave a presentation on "Exploring light-weight event sourcing" that makes it sound quite approachable in Scala. Perhaps it is applicable for smaller projects than one should consider DDD for? The video is not available yet, but the presentation slides are:
    days2011.scala-lang.org/node/138/301

  9. Back to top

    Re: Check this out as well

    by Nicholas Sterling

    Another (more polished?) version of the same talk: www.slideshare.net/dlrozendaal/exploring-lightw...

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.