Skip to content
About
Main content
Time & Change

Time & Temporal Semantics

When am I allowed to act on data that may still be incomplete, and what do I owe the reader if I was wrong?

Who this mechanism is for: a developer who writes code, builds data pipelines or dashboards, and knows basic SQL, but has never studied processing, or temporal databases. You do not need any background in distributed systems. Every technical term is explained the first time it appears, and again in the glossary at the end. Small code snippets are in Python, SQL and shell.

The story we will follow

Kavya is a data engineer at Kitebox Deliveries, a company that delivers parcels in several cities. Every courier carries a phone app. The app sends small messages called events: "parcel picked up", "parcel scanned at depot", "parcel delivered". Kitebox Deliveries stores these events and computes numbers such as "deliveries per depot per hour". Her manager, Rohan, reads these numbers every morning, and the finance team uses them to pay couriers.

Over one busy quarter Kavya will meet six problems, one at the start of each article below. Each problem looks like a bug in her code. None of them is. Each one comes from a fact about time that you cannot engineer away. At the end of each article, we go back and solve her problem with the mechanisms of that part. The last part (What time forbids) puts all the limits in one list.

This is the main idea of this mechanism:

How this mechanism is organized

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

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.

Recurring principles

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

Show all 8 principles