Archive for category Design

The Disruptor – Lock-free publishing

In case you’ve been living on another planet, we recently our high performance message passing framework. I’m going to give a quick run-down on how we put messages into the ring buffer (the core data structure within the Disruptor) without using any locks.

The “single implementation” paradox – redux

Following on from , my colleague, Adrian, has given the issue some thought and written an excellent post explaining his position. His conclusion is that we should simply not be marking classes as final because it really doesn’t bring any benefits. Even if you’re trying to follow Design by Extension, the next guy is just [...]

The “single implementation” paradox

We got into a bit of a debate at work recently. It went a bit like this: “Gah! Why do we have this interface when there is only a single implementation?” (The stock answer to this goes:) “Because we need the interface in order to mock this class in our tests.” “Oh no you don’t, [...]