Fifty-seven days until sunset.
The infrastructure documentation for Building B's basement took her fifteen minutes to find. Not because it was obscure — it sat in the standard ops runbook under Physical Infrastructure > Building B > Server Room B1 — but she hadn't needed it before. She found the rack inventory, pulled up the asset database, traced the hostname cwapi-legacy-prod-03 to its physical host: bldgb-r07-s14. Building B, Row 7, Rack 14.
Three weeks of querying the API from her desk — health checks, test queries, the forecast endpoint, the current conditions endpoint, all of it through the abstraction layers that separated a terminal command from the hardware it touched. The caller log was in her directory. The anomaly file had eighteen impossible forecasts, the latest extending through mid-August. She knew the API's response patterns the way you come to know a regular route, something so repeated you've stopped registering the scenery. She had never seen the machine.
Temporary access badges for the server room came through the facilities portal. She submitted a request — purpose: infrastructure audit, v1.2.3 sunset assessment — and had the badge in under an hour. White plastic, a barcode, her name in the standard printer font. She clipped it to her lanyard beside the regular one and locked her workstation. The caller log was still open on the locked screen. She'd been adding to it that morning — two more entries, a home automation hub outside Atlanta and an irrigation controller in Tucson that varied its request frequency by season, calling more often in the growing months and less in the dormant ones, because whoever had configured it had understood the difference and built it in. She had more to verify. She'd come back to it. She walked toward Building B with the two badges against her chest.
Building B shared a covered walkway with the main office, and the elevator to the basement required a standard key card rather than the temporary badge. She went down. The basement had the functional plainness of infrastructure spaces — sealed concrete instead of carpet, overhead fluorescents, doors chosen for utility over impression. The server room was at the corridor's end, behind a heavy glass security door. She held the temporary badge against the reader. The lock clicked open.
The cold was the first thing. Not sharp the way outdoor cold was sharp — this was consistent, deliberately maintained, the product of systems running at constant precision. The wall display read 66°F. The air carried a quality she registered before she named it: metallic, clean, the particular smell of electronics under sustained load in a sealed space, like the inside of an opened computer case but scaled up and pervasive. The floor was raised, mesh panels over cable runs, and gave slightly under her feet in a way she hadn't expected.
And then the sound. She'd been in server rooms before — a tour during orientation, a brief errand early in her first year. She didn't remember it being like this. The fan arrays and cooling units running in aggregate produced something that wasn't quite noise the way a crowd was noise, or traffic, or anything that arrived from a point and then receded. It was total and stationary. It filled the space from the raised floor to the ceiling and had been filling it for years and would fill it long after she left. She stood inside it and felt the low consistent pressure against her eardrums, which accepted it after a few seconds as simply the character of the room.
Rows of server racks stretched in two directions behind a low glass partition — not a wall, just a demarcation, something you stepped over. Indicator lights blinked on the rack faces she could see from here: green, amber, green. On a rack to her left, a cascade of amber ran down the face and then held steady, and she caught herself trying to read it as signal before she stopped that particular instinct. The lights were status indicators. They meant what status indicators meant. Row 7 was marked by a small placard at the aisle cap, and she went to find it.
Rack 14 was in the middle of the row, indistinguishable from the ones flanking it. The same four-post aluminum frame. The same density of hardware: servers and switches stacked to chest height, a patch panel below, cable management arms holding organized bundles against the sides. A label on the upper rail read bldgb-r07-s14 in white text on black. Beside it, someone had added a piece of blue tape with handwriting in fading marker: LEGACY — check ops before modifying. The tape's adhesive was giving at one corner, the note peeling away from the frame it had been posted to years ago.
Eight years. The figure arrived without calculation — she'd been working with the API's history long enough that 2016 had become a date she held in working memory, the way the request intervals and the caller locations had. Since 2016, this rack position had been running the service. Not necessarily the same physical server units — hardware got replaced, components swapped on maintenance cycles, VMs migrated between hosts — but this address, this continuous operation, this thing that answered when something called. The greenhouse in Cedar Falls, sending its hourly query. NorthStar's scheduler, asking about the air every fifteen minutes. Gerald Huang's weather station in Duluth, sending its 6:02 AM request every morning — and then, after Gerald Huang died, the station continuing to send it without him.
The rack looked like a rack. The hardware behind the cable management arms looked like hardware. She was standing in front of a standard server installation in a standard data center, and she was aware, nonetheless, that she had been standing here for longer than the task required. The fans moved air past her face in steady currents. The cold exhalation off the machines was consistent and constant. She thought about the 200 OK response she'd run a hundred times from her desk — I'm still here, I'm still here, I'm still here — and the machines that had been composing it, here, before she had this job, before she had the idea to check. She took the laptop out of her bag, opened a terminal, connected to the operations network, and ran the health check first.
``` GET /v1/health Host: api.cloudweather.io
200 OK {"status": "operational", "version": "1.2.3"} ```
Two hundred. Okay. Forty-three milliseconds. She ran the current conditions query for Denver: temperature 58, partly_cloudy, humidity 42, wind 12 miles per hour. Correct values, standard structure, every field in the documentation accounted for. She ran it again to confirm the response time was stable — forty-three milliseconds, forty-two milliseconds. The API was running normally. Then she ran the forecast query.
``` GET /v1/forecast?location=39.7392,-104.9903&days=7 Host: api.cloudweather.io
200 OK { "location": "Denver, CO", "generated": "2024-04-05T14:22:17Z", "forecast": [ {"date": "2024-04-05", "high": 61, "low": 41, "conditions": "partly_cloudy", "precip": 0.15}, {"date": "2024-04-06", "high": 58, "low": 39, "conditions": "rain", "precip": 0.65}, {"date": "2024-04-07", "high": 63, "low": 44, "conditions": "clearing", "precip": 0.20} ], "witness": true } ```
She read the last line twice. The API specification was forty-seven pages. She searched the full document for the string witness. Zero results. She checked the supplementary guides, the changelog for every version from 1.0 through 1.2.3, the developer FAQ. Zero results. She opened the repository link and ran the code search: "witness". Three matches in README files and one in a test document, all using the word in plain English prose about API behavior, none of them in any code that would attach a field called witness to a response object. She queried the forecast endpoint again.
``` GET /v1/forecast?location=39.7392,-104.9903&days=7 Host: api.cloudweather.io
200 OK { "location": "Denver, CO", "generated": "2024-04-05T14:22:31Z", "forecast": [...], "witness": true } ```
Same field. Different timestamp — fourteen seconds later. Forty-one milliseconds. She ran the current conditions query.
``` GET /v1/current?location=39.7392,-104.9903 Host: api.cloudweather.io
200 OK { "location": "Denver, CO", "temp": 58, "conditions": "partly_cloudy", "humidity": 42, "wind_mph": 12, "witness": true } ```
Both endpoints. She sat down on the raised floor with her back against the rack across the aisle and looked at the screen. The cold from the machines was at her back. Witness. She thought about what process would have to exist in the codebase to generate this field — a serializer with a hardcoded value, a configuration flag, a conditional in the controller layer that she had somehow missed in three separate passes through the repository. She had not missed it. It was not there. The field was in the responses and nowhere in the code that generated the responses.
She opened the anomaly file and added the new entry. 2024-04-05T14:22Z: New field "witness": true. Present in forecast and current_conditions endpoints. Confirmed across four queries, two endpoints, from bldgb-r07-s14 subnet. Field absent from API specification v1.2.3 (full doc search performed 2024-04-05). Field absent from codebase (full repository search performed 2024-04-05). No technical source identified. She stared at the last line. Then she added one more sentence. Field present when queried from same physical subnet as host hardware. She didn't know what that meant. She wrote it because it was true and because she was the kind of person who wrote down true things.
She stood and looked at the rack. The same LEDs, cycling through whatever their indicators meant. The fans moved at the same rate. The last query had been answered in forty-one milliseconds, as every query had been answered since she started this audit, since before this audit, since 2016. She closed the laptop. The anomaly file now held nineteen entries. The impossible forecasts extended through mid-August.
She walked back out through the row of identical racks, through the glass door, past the utility corridor, and into the elevator. The cold from the server room had settled into her jacket during the twenty minutes she'd been inside. The elevator rose one floor, and she felt it leaving — the building's ambient temperature reasserting itself against the fabric.
The lobby was unremarkable in the way lobbies were. Through the entrance glass, April afternoon light came in at its current angle — lower than summer, still doing what April light does, which was to surprise her. She pushed through the door. Outside the temperature was 58 degrees, partly cloudy, humidity 42. She knew this because she had queried it forty minutes ago.
Five minutes across the campus connector with the temporary badge on her lanyard. She'd return it to the facilities desk when the audit was complete. She wasn't sure when that would be. Back at her desk she opened the anomaly file and added one line to the summary section at the top — not a new entry, a note above the line, something she wanted visible so it wouldn't get buried: See also: field "witness" — first confirmed occurrence 2024-04-05, no technical origin identified. She read it back, then opened the caller log.
Fifty-seven days. She had the word witness in her notes.