Thinking & Building Distributed First

Adrienne Domingus
4 min readOct 9, 2020

When many of us are first taught to program, we’re told something along the lines of “programming is a set of very specific instructions that a computer follows in a specific order.” And this is true, sort of. It’s true, but it’s incomplete. What that statement ignores is that when we’re programming for the web, we’re usually dealing with more than one computer.

Multiple computers run our application servers. We use microservices. We have databases and background tasks and message busses and scheduled jobs.

These are the high-level things I wish someone had told me when I first graduated from my bootcamp. They’re questions to think about as we’re writing code within a system. I don’t have answers to all of these questions here — they’re highly context-dependent. But it’s important to consider these things early on in the development process — otherwise we might end up with a system that works delightfully on our local machines, but not at all in production.

The target audience here is folks who have at least some understanding of how web applications work and how to build them, but haven’t spent extensive amount of time working on highly-available distributed systems in production.

Does order matter?

--

--