About Me
I'm a technical architect with Headspring in Austin, TX. I focus on DDD, distributed systems, and any other acronym-centric design/architecture/methodology. I created AutoMapper and am a co-author of the ASP.NET MVC in Action books.
Upcoming Talks
-
Recent Posts
Recent Comments
- offler on Tabs versus spaces: Spaces won
- offler on Tabs versus spaces: Spaces won
- eatfrogtest on Strategies for isolating the database in tests
- The Morning Brew - Chris Alcock » The Morning Brew #1380 on Strategies for isolating the database in tests
- Simon on Strategies for isolating the database in tests
Archives
- June 2013 (4)
- May 2013 (4)
- April 2013 (1)
- March 2013 (6)
- February 2013 (2)
- January 2013 (2)
- December 2012 (3)
- November 2012 (6)
- October 2012 (7)
- September 2012 (3)
- August 2012 (6)
- July 2012 (5)
- June 2012 (3)
- May 2012 (3)
- April 2012 (3)
- March 2012 (8)
- February 2012 (5)
- January 2012 (5)
- December 2011 (3)
- November 2011 (6)
- October 2011 (4)
- September 2011 (6)
- August 2011 (8)
- July 2011 (3)
- June 2011 (4)
- May 2011 (8)
- April 2011 (6)
- March 2011 (3)
- February 2011 (7)
- January 2011 (6)
- December 2010 (4)
- November 2010 (2)
- October 2010 (1)
- September 2010 (7)
- August 2010 (6)
- July 2010 (4)
- June 2010 (7)
- May 2010 (9)
- April 2010 (8)
- March 2010 (5)
- February 2010 (4)
- January 2010 (9)
- December 2009 (9)
- November 2009 (5)
- October 2009 (8)
- September 2009 (8)
- August 2009 (8)
- July 2009 (11)
- June 2009 (10)
- May 2009 (11)
- April 2009 (10)
- March 2009 (9)
- February 2009 (12)
- January 2009 (10)
- December 2008 (8)
- November 2008 (14)
- October 2008 (11)
- September 2008 (10)
- August 2008 (12)
- July 2008 (11)
- June 2008 (11)
- May 2008 (15)
- April 2008 (10)
- March 2008 (15)
- February 2008 (13)
- January 2008 (19)
- December 2007 (9)
- November 2007 (17)
- October 2007 (23)
- September 2007 (10)
- August 2007 (11)
- July 2007 (11)
- June 2007 (9)
- May 2007 (14)
- April 2007 (7)
Categories
- Agile (53)
- ALT.NET (1)
- altnetconf (3)
- Architecture (13)
- ASP.NET (11)
- ASP.NET MVC (46)
- ASP.NET MVC in Action (1)
- ASP.NET Web API (2)
- Austin Code Camp (2)
- Austin DDD Book Club (2)
- AutoMapper (31)
- BDD (8)
- Behave# (6)
- Behavior-Driven Development (5)
- C# (70)
- Code smells (2)
- Community (6)
- Continuous Improvement (3)
- Continuous Integration (7)
- CQRS (3)
- Dependency Injection (9)
- Design (19)
- Distributed Systems (4)
- Domain Driven Design (2)
- Domain-Driven Design (50)
- Entity Framework (2)
- git (15)
- HTML5 (1)
- JavaScript (4)
- Legacy Code (11)
- LINQ (10)
- LINQ to SQL (5)
- Mercurial (9)
- Messaging (10)
- Misc (50)
- MonoRail (4)
- MSBuild (1)
- MVC (1)
- NBehave (3)
- NFJS (1)
- NHibernate (10)
- NServiceBus (18)
- OO (2)
- OSS (1)
- PabloTV (1)
- Patterns (8)
- People (4)
- Personal (2)
- Presentations (1)
- Process (3)
- PTOM (1)
- Rails (3)
- Rant (31)
- Refactoring (22)
- REST (2)
- Rhino Mocks (1)
- Ruby (3)
- SOA (10)
- SQL (4)
- StructureMap (9)
- TDD (32)
- Team Build (6)
- Testing (26)
- TFS (2)
- Tools (36)
- Uncategorized (7)
- VSTS (7)
- WCF (5)
Meta
Category Archives: NServiceBus
Saga patterns: wrap up
Posts in this series: Observer pattern Controller pattern Pattern variations Scaling sagas Routing slips NServiceBus sagas are a simple yet flexible tool to achieve a variety of end goals. Whether it’s orchestration, choreography, business activity monitoring, or just other long-running … Continue reading
Also posted in Messaging
3 Comments
Saga alternatives – routing slips
In the last few posts on sagas, we looked at a variety of patterns of modeling long-running business transactions. However, the general problem of message routing doesn’t always require a central point of control, such as is provided with the … Continue reading
Also posted in Messaging
3 Comments
Scaling NServiceBus Sagas
When looking at NServiceBus sagas (process managers), especially at high volume of messages, we often run into two main problems: Deadlocks Starvation This is because of the fundamental (default) design of sagas is that: A single saga shares a single … Continue reading
Also posted in Messaging, SOA
7 Comments
Saga implementation patterns – variations
In the previous couple of posts, I looked at the two main patterns I run into when looking at sagas: Command-oriented (request/response) in the Controller pattern Event-oriented (pub/sub) in the Observer pattern Of course, these aren’t the only ways our … Continue reading
Also posted in Messaging, SOA
6 Comments
Saga implementation patterns – Controller
In the previous post on saga implementation patterns, we looked at the Observer pattern. In that pattern, the saga was a passive participant in the business transaction, similar to how many fast food restaurants fulfill orders. But not all food … Continue reading
Also posted in Messaging, SOA
17 Comments
Saga implementation patterns – Observer
NServiceBus sagas, itself an implementation of the Process Manager pattern, often takes one of two main forms when implemented. It’s not a cut and dry distinction, but in general, I’ve found that saga implementations typically fall into one or the … Continue reading
Also posted in Messaging, SOA
11 Comments
NServiceBus, Semantic Versioning and events
Something that caught us quite off guard when migrating from the 2.6 version of NServiceBus to the 3.x versions was around how NServiceBus treats assembly versions for publishing messages. When a subscriber expresses intent for a subscription of a message … Continue reading
Messaging Semantics: Ownership
In the last post, I covered naming of messages for the different kinds of messages we typically see: Commands Replies Events The names of messages is the first clue I look in to see if boundaries are correct. Often, when … Continue reading
Also posted in Domain-Driven Design, SOA
5 Comments
Messaging semantics: names and verbs
In most messaging systems I’ve worked with (synchronous or asynchronous), there are three general types of messages that arise: Commands Replies Events Queries can be thought of as a special kind of command where I ask for something and get … Continue reading
NServiceBus and concurrency
A while back, Andreas posted on NServiceBus sagas and concurrency. In that post, he described both what to consider and how to change the concurrency model of NServiceBus and how it relates to sagas. One thing that comes as a … Continue reading
Also posted in NHibernate
5 Comments
