Goodput
Backlog: 2,112**
The exchange runs out of a windowless room an hour inland from New Norcia, and the number I am paid to watch is not throughput but backlog: how many messages are waiting, at this moment, to leave Earth. On an ordinary morning it sits near two thousand. A message waits forty minutes in the queue, spends fourteen in flight, and is acknowledged within the hour, and the whole apparatus is about as interesting as a post office, which is the best thing a network can be.
My sister has been at Jezero eleven years. Hydrology. We message most weeks. I mention her now because everyone in this account has somebody — a son at Elysium, a woman they nearly married at Hellas — and because what happened was caused by none of them and made out of all of them.
At 09:05 UTC on the Tuesday, the Jezero array recorded ninety seconds of shaking: enough to crack a glasshouse pane and drop the settlement’s ground terminal onto a battery bus that failed under load. The link was dark for forty-one minutes. Then the terminal restarted, ran its self-tests, and reported itself healthy. This was true, and it stayed true through everything that follows. Nothing in this story is broken. I want that understood at the start, because it took me until the Friday to make the consortium understand it.
Backlog: 88,406
The quake reached Earth the only way anything does, as light, fourteen minutes late, and the wires had it inside the hour: MARSQUAKE AT JEZERO SETTLEMENT — CONTACT LOST. The second clause was already false when it was published. It made no difference. Eighteen hundred people live at Jezero, and each is loved by some number of people on Earth whose mean, we later established for the enquiry, is about twenty. Call it thirty-six thousand people, opening the same app inside the same hour, typing some version of the same eleven words. Are you okay. Please, when you see this, tell me you’re okay.
The uplink is two hundred and fifty-six kilobits per second. On a quiet day that is better than double what six settlements need. By noon it was being offered thirty quiet days at once, and half of that by weight was voice notes, because frightened people do not trust text to do their voices’ work.
Even so, the queue would only have grown, and then, in a week or so, drained. Queues do that. What turned a flood into a storm was a button.
The client — Waypoint, the consortium’s own — does the correct thing when a message goes unacknowledged: it retransmits under the same identifier, the ingest recognises the identifier, and the duplicate costs nothing. Machine patience is idempotent; we built it that way. But an acknowledgement is not conjured on Earth — it rides home on the downlink, and the downlink was as flooded as the uplink, eighteen hundred people sending video of themselves alive and their mothers’ receipts queued behind it. So no receipts came. And at forty-five minutes without one, Waypoint shows a human being a small grey banner: Not delivered. Try again?
People tried again. The button re-enters the composer path and mints a fresh identifier, so to the exchange each tap was not a retransmission but a brand-new letter, identical to the byte to a letter already in the queue. We had built idempotency into the machines and none into the people.
The forty-five minutes was fixed, with no jitter — a decision taken years ago, in an era of clean links. So the storm had a pulse. On the arrival graph you could watch it: a wave of load every three-quarters of an hour, smeared a few minutes wide by human hesitation, each wave a little taller than the last. Thirty-six thousand people tapping the same banner nearly in step.
Backlog: 517,882
By evening the property that matters had emerged, and I want to state it plainly, because it is the whole of what I know. The trigger was gone. The terminal had been healthy since mid-morning; the forty-one-minute outage was over before most of Earth heard it had begun. The storm no longer needed it. Delay caused taps, taps caused delay, and the loop shed its own trigger and kept turning. A link that carries a normal day at half capacity cannot climb out of such a state at anything above a fraction of capacity offered — and it was being offered thirty times it. The outage did not cause the storm. The news did. We could have kept the link up all that day and lost it anyway.
We published a notice on every channel we had: the link is healthy; your messages are queued; every resend delays every message, including your own. It read as either a lie or an insult. And each individual tap was rational. One more copy of your own message costs everyone else a fraction of a second; it is only everyone’s fraction, forty times a day, that is fatal. I stopped blaming them by nightfall. I had a bundle in that queue myself by then.
I could see my sister. Not her words — payloads are sealed at the settlement, and I would not have looked — but the metadata is my job. Five bundles from her address to mine across the Tuesday: 09:18, eleven kilobytes, composed while the dust was still coming down. 10:40, four kilobytes. 13:55, one point four megabytes — six minutes of voice, near enough. Two more in the evening. Receipts pending, all five, in a downlink queue three hundred thousand deep.
Backlog: 903,114
What we did on the Wednesday, in order, because the order is the craft:
Receipts first. A receipt is two hundred bytes that prevents a tap; nothing else on either link bought so much per byte. We moved every acknowledgement to the head of both queues, and by mid-morning the exchange had stopped lying to its users in the pessimistic direction — thousands of messages had in fact been delivered on the Tuesday, and their senders were tapping the banner over a success no one had told them about.
Then the clients. We pushed a configuration broadcast — which had to cross the congested uplink itself, so we pre-empted the queue for forty seconds to send it, the only jump-the-queue exception I signed all week: retry at forty-five minutes, then ninety, then three hours, each device offset by its own random slice. We taught the banner to hesitate, and every handset to hesitate by a different amount. The waves flattened within two cycles.
Then the kerb. Admission control at the Earth ingest: one message per sender per six hours, everything further held on the sender’s own device with its true position shown. People will queue calmly almost anywhere, provided the queue is honest with them.
And then none of it was enough, because of arithmetic. Nine hundred thousand messages at the link’s best rate was the better part of three weeks, and almost every one of them asked a question whose answer its recipient already had. Content hashing went first — the button’s copies were identical to the byte, and identical bodies under different identifiers are the easiest deletion in the world. That took us to a hundred and twenty-six thousand: every one distinct, every one written by a person, three days of stale fear queued ahead of anything fresh.
Backlog: 126,309
The policy I put to the room on the Thursday was one sentence. For each ordered pair, sender to recipient, deliver only the newest message; notify the sender of the timestamps that were not delivered; exempt anything flagged medical, legal, or priority.
Rhys, who is twenty-six and better at this than I was at twenty-six, said: they’re letters. You’re proposing to delete people’s letters.
I said that the newest message in any pair was the one written by the person who knew the most, and that we would be honest about every deletion, which is more than a queue silently ageing things out for three weeks would have been. It is the answer I still give. I notice it is an answer about the senders, and the objection was about the letters.
He said: your sister’s in that queue.
I said: everyone’s sister is in that queue. Run it.
It ran as a single transaction, ninety seconds, the room quiet, the counter falling like an altimeter. A hundred and twenty-six thousand to forty-one thousand. On the graph in the enquiry report it is a cliff, and it has my initials on it.
Backlog: 0
We reopened at two-fifths of capacity and crept upward over two days, watching for the loop to re-form. It never did. The outage lasted forty-one minutes. The recovery took four days. Both figures are in the report.
My sister’s message arrived on the Thursday evening, timestamped Tuesday 21:12, the fifth of five. It said:
All fine here. Cracked pane in glasshouse three, nobody hurt, we’re on canned air as a precaution only — don’t read anything into it. Ignore everything I sent before this, it was a strange day and I went on a bit. Love you. H.
Ignore everything I sent before this. The policy had obeyed her about eighteen hours in advance. Somewhere at Jezero there is a notification listing the four timestamps that were never delivered. She has not mentioned it, and neither have I.
I kept the metadata row; deleting it was not required, and I did not test whether I could. Eleven minutes after the shaking stopped, my sister wrote me eleven kilobytes. There are four letters of hers I will never read, and I am the one who knows precisely what they weighed.