Yesterday I was reading a blog post by Jimmy Bogard where he describes using ACID 2.0 (Associative, Commutative, Idempotent, Distributed) to create a ledger for a point of sales system. I’m not going in depth on “ACID 2.0″ in this post but the idea is that you can provide correctness in distributed systems using different techniques. One part of   Read More …

In the industry there is a lot of reuse of storage engines because writing a good, reliable and efficient one is a tough challenge and takes a lot of time to get right. If a database implements its own storage engine I’m likely to be skeptical of the implementation until it has been proven to   Read More …

Today support for AMQP in Windows Azure Service Bus was announced. For more details check out the discussion between Clemens Vasters and David Ingham. Previously I wrote about the differences between the old and the new AMQP standards. One topic that comes up when AMQP is mentioned is that software written with AMQP won’t “just   Read More …

Chris Patterson mentioned CRDT’s on Twitter this morning which reminded me that I haven’t blogged or provided any resource links on them in the past even though I’ve been reading about them for over a year. So here goes! CRDT’s help build things like distributed sets, lists, counters and maps. Justin Sheehy has a great   Read More …

I wasn’t around during the days where services and applications had big heavy configuration files that configured things like messaging middleware, IoC containers, web frameworks, and many more. But I can definitely feel that there is a large sense of negativity around configuration driven frameworks and that the community has shifted the pendulum away from   Read More …

Hoop Somuah pointed me at the new RAFT consensus algorithm a couple days ago. The paper is titled “In Search of an Understandable Consensus Algorithm” which I think is a fitting name. The paper points out that the literature on Paxos has been known to be hard to understand and difficult to apply in actual   Read More …

Previously I wrote about how serialization is a lossy operation and how this can affect down stream systems. It’s hard to plan ahead to accommodate changes that come in the future because it’s hard to predict what these changes will be. In one case I saw a v2 of a message contract get introduced that   Read More …

Just like coupling in software can make code brittle and make a larger scope of failure, the same can happen with hardware. A cluster I was using was configured in a way that all the virtual machines were using a pool of resources and when that pool experienced a resource failure affecting a fraction of   Read More …

In my short time in the industry so far, it feels like we hop from one fad to another. Each one has its merits and associated pros and cons, it probably wouldn’t be popular if it didn’t provide any value. I can’t think of a quicker path to failure than thinking about the solution before   Read More …

I’m a big fan of any material that comes from Peter Bailis. He and his crew are tackling some really interesting topics in distributed systems and trying to redefine new ways to solve these problems. He wrote about HAT, not CAP: Introducing Highly Available Transactions where he describes the concept of highly available transactions and how   Read More …