NDC Videos online

A couple of weeks ago I had the privilege of presenting a few talks at the NDCOslo. It’s a close contest for the most enjoyable, rewarding conference with it and CodeMash, but both have a different enough vibe that it’s … Continue reading 

Posted in Community | 10 Comments

Austin Code Camp 2013 registration open

The annual Austin Code Camp, scheduled for August 17th, is now open for registration. The Austin Code Camp is 100% free and run completely by volunteers, with support from the Austin .NET Users Group (ADNUG). The call for speakers is … Continue reading 

Posted in Community | 1 Comment

Run tests explicitly in xUnit.net

I’ve more or less ditched NUnit as my default automated testing platform in .NET, preferring the more sensible defaults of xUnit.net. Switching wasn’t so bad – it mostly involved moving setup/teardown methods to constructors/Dispose methods. One piece that was missing … Continue reading 

Posted in Testing | 10 Comments

Strategies for isolating the database in tests

One of the keys to having maintainable tests are to make sure that tests are isolated and reproducible. For unit tests, this is easy as long as we stay away from global variables, static classes and in general global state. … Continue reading 

Posted in Testing | 17 Comments

Distributed systems reading list

Something I wish I had read years ago (or found out about) is this nice concise list of resources around distributed systems: http://dancres.org/reading_list.html When I started having issues around 2PC, and twitter was being beyond unhelpful with pointers to actual … Continue reading 

Posted in Distributed Systems | 2 Comments

ACID 2.0 in action

One of the comments in my last post on message idempotency asked about message ordering. This is part of a larger issue that I’ve run into recently around turning two-phase commits off. When looking at mutating state through interactions, typically … Continue reading 

Posted in Messaging, SOA | 5 Comments

(Un) Reliability in messaging: idempotency and de-duplication

In my post on ditching two-phase commits, I introduced the problem of trying to listen and talk at the same time. Essentially, people typically do two-phased commits in messaging systems because they want to deal with messages “exactly once”. But … Continue reading 

Posted in Messaging, SOA | 7 Comments

Eventual consistency in REST APIs

Not picking on an API in particular, but…wait, yes I am. Octopus (an awesome product) has a proposed API on GitHub, and one of the things it describes is how to deal with the fact that the backend is built … Continue reading 

Posted in REST | 11 Comments

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 

Posted in Messaging, NServiceBus | 4 Comments

Ditching two-phased commits

I’ve had a love-hate relationship with two-phased commits during my years with messaging. Even if MSDTC was free to set up, it doesn’t come free in terms of throughput. Most people run into 2PC in messaging because because queueing systems … Continue reading 

Posted in Messaging, SOA | 17 Comments