Readings in distributed systems and DDD

Since I can't seem to find the time to write an in-depth article these days, I'll cheat for once and just link to others.

These are posts that I've come across recently on distributed systems and DDD, the two main areas I'm interested in at the moment. They are all well worth your time reading if you haven't already.

Distributed Systems

Large-scale cluster management at Google with Borg

This was of particular interest to me as I was designing a somewhat similar system at work when I came across this paper. It's a great read for anyone interested in distributed systems. The paper is well-written and is packed with insights. The authors are also very candid about what worked and what didn't work so well with Borg.

Omega, and what it means for Kubernetes: a Q&A about cluster scheduling

If you liked the Borg paper, you'll love this.

Lessons Learned from Implementing Paxos...

...in .NET. It can sometimes feel lonely to be a .NET developer in the distributed systems world (this will hopefully change with the recent open-sourcing of the .NET Core platform and its MS-supported Linux and OS X ports). Will Portnoy has put this right with this great post.

The Discovery of Apache ZooKeeper’s Poison Packet

Pour yourself a glass of your favourite drink, find a confortable seat and dive into this fascinating exploration of Paxos, Apache Zookeeper, IPSec and the Linux kernel.

Under the hood: Facebook’s cold storage system

This is what happens when the smartest hardware and software geeks get together.

DDD

Effective Aggregate Design by Vaughn Vernon

(read the 3 PDF files linked from that page)

Vernon has done a truly spectacular job with this series of articles. They are by far and away the best articles written on DDD and are the ideal introduction to DDD for someone who doesn't have the time or inclination to read the book.

The articles are very well-written and a great read. The example application Vernon chose to illustrate his points hits the perfect sweet-spot between being simple enough to not require a lengthy upfront explanation yet realistic enough to illustrate how DDD addresses real-world problems. You'll no doubt identify with many of the situations Vernon presents in this series.

Getting started with DDD when surrounded by legacy systems

For the 99% of us who won't get to work on a purely greenfield project anytime soon, Eric Evans' guide on introducing DDD within a legacy code base (or, rather, alongside it) is a must-read.