In a large, high-throughput system there’s no one database to rule them all, distributed transactions are a no-no and failure is a first-class citizen.
Designing for scale means designing for large numbers of distributed systems and dealing with a few hundred clients poses different problems to scaling out to cover an entire country, continent or planet.
You’re likely to want Damian Maclennan for this talk, too, if you can get him, as the first time we delivered this talk was together at DDD Brisbane 2013.
Here’s a version of the talk that Damian and I delivered together at the Brisbane Azure User Group.
My name is Andrew Harcourt.
I do Head of Technology/Engineering, Consultant CTO and other similarly-shaped work with companies large and small. I specialise in project rescue, governance and development methodologies.
I'm a Principal Consultant at ThoughtWorks, a co-founder at Stack Mechanics, one of the organisers of the DDD Brisbane conference and, in my spare time (ha!), I also run my own photography business, Ivory Digital.
My main areas of interest are domain-driven design, event sourcing, massively-scalable service architectures and large-scale, high-load, geographically-distributed systems.
I'm a regular speaker and presenter at conferences and training events. My mother wrote COBOL on punch cards and I've been coding in one form or another since I was five years old.
Cyclist. Photographer. Ballroom dancer. Motorcyclist. Occasional sailor. Lapsed fencer.