---
id: "0005"
date: 2026-04-02
status: Accepted
supersedes:
superseded-by:
affected-paths: [lib/relay/log.rb]
affected-components: [logging]
---

# 0005 — Record event times as UTC ISO-8601 strings

## Context

Early log lines used local server time with no zone marker. Correlating our log against receivers' logs during an incident required guessing the offset, and a DST change produced apparently out-of-order events.

## Decision

Every recorded event time is a UTC ISO-8601 string (e.g. 2026-04-02T09:15:00Z), produced via Time.now.utc.iso8601. Local time and bare epoch integers are not written anywhere.

## Consequences

Log lines correlate directly with receiver logs and sort lexicographically. Anyone reading logs on a non-UTC machine does the mental offset themselves.

## Alternatives rejected

Epoch seconds rejected: compact but unreadable during incidents. Local time with zone suffix rejected: DST still reorders events within a day.
