Language model (LM) agent harnesses are stateful programs around model calls: they maintain context, dispatch tools, coordinate subagents, and enforce budgets. In many implementations, the state that drives these decisions is split across control flow, in-memory caches, tool side effects, and after-the-fact logs. We present an event-driven programming model in which a durable, append-only event log is the source of truth for the state of the harness. Concerns within the harness are written as facets: independent subsystems that derive local state by pure folds over the log, authorize new events through an admission rule, and propose follow-on events when their local state changes. The log is therefore both the source of truth for facet states and the coordination medium between facets; an external trigger reactively drives a sequence of admission and proposal steps. We present this compositional design, show how it decouples harness concerns, and supports extensibility through facets. We provide a concise Python implementation of our system.