Skip to content
About
Main content
Bytes in Motion

Data Movement

How do records cross between two systems that have independent rates, independent availability and independent lifetimes, and what are you willing to lose when the assumption underneath the crossing breaks?

Who this mechanism is for: a developer who writes services, calls APIs and knows basic SQL, but has never designed a message , run Kafka, or reasoned about delivery guarantees. You do not need any distributed-systems background. Every technical term is explained the first time it appears, and again in the glossary at the end. When an idea from the physics of a single machine is needed (a disk seeks, a cache line is 64 bytes, a that is 80% busy is already slow), we explain it again in a few sentences where it is used.

The story we will follow

Cartwheel is a small online grocery marketplace. Customers place orders, and independent sellers fulfil them. Ravi is the backend engineer who owns the Orders service. Lena is the data engineer who owns the analytics pipeline and the event platform. Omar, the CTO, asks the blunt questions. Sana is often the engineer on call when things break.

When the company started, the Orders service simply called every other service directly: Payments, Inventory, Email, Fraud scoring. Now Cartwheel is growing. Over the next weeks Ravi and Lena will move it to an event-driven platform, where services pass records to each other through brokers and logs instead of calling each other. Along the way they will meet six problems, one at the start of each article below: a failed checkout, a double confirmation email, a crashed , a stalled , a network bill that is too high, and a that doubles last month's revenue.

Each problem looks like a bug. Each one is actually a consequence of something deeper about how two separate computers talk to each other. At the end of each article we go back to Ravi and Lena and solve the problem with the ideas of that part. (All story numbers are illustrations, not measurements.)

This is the main idea of this whole mechanism:

How this mechanism is organized

After that: a summary, hands-on labs, interview questions and a glossary.

Note on the structure: the four groups (transport, routing, flow control, network mechanisms) are not four equal . They are a stack. A real pipeline picks one choice from each group at the same time. From one machine to two explains this. is not a fifth topic beside them; it is where the correctness of the whole stack lives, so it appears in Transport patterns and gets Delivery across a pipeline. Making a repeat harmless is Fault tolerance's subject.

What do I do, and what does each option cost?

Can I see it myself?

Can I reason about it under questioning?

Trade-offs

The tensions this mechanism takes a position on. Each recurs across mechanisms.

Show all 12 trade-offs
Recurring principles

Ideas this mechanism meets that keep coming back, mechanism after mechanism.

Show all 17 principles