01 / BRIEF
The observation layer behind the fleet. Mail, messages, calendar, weather, phone and a wearable all land in one append-only event log, and everything downstream reads from there.
Most assistants are built the other way around: each integration owns its own copy of the world, so every new agent means another sync, another credential, another thing to break. Argos inverts it. There is one log, and plugging a new agent into a life is a matter of pointing it at a cursor.
Seventeen small services, around twenty-six thousand lines of TypeScript. None of them is interesting alone. What is interesting is the contract between them.
02 / HOW IT WORKS
One writer. Every source goes through a single writer that validates the shape of an event by its kind before it enters the log. One writer means the log can never disagree with itself, and a contract at the edge means a bad event is rejected where it is cheap to reject.
Append-only. Nothing is updated and nothing is deleted. What happened stays exactly as it was recorded, which turns the log into a history rather than a snapshot. Derived state is not stored anywhere sacred: it is computed from the log, so it can be thrown away and rebuilt whenever the way we interpret events changes.
One cursor per consumer. Every reader keeps its own position. This is the whole design in one sentence, and it buys three things: a consumer that was broken for three days catches up on its own, a new consumer can read history that predates it, and no reader can slow another one down. Plugging a new agent in is not an integration project, it is a cursor.
Tiers, not a pipeline. Observers write raw events. Derived tiers read them and write their own conclusions back into the same log, as events. So the reasoning is auditable too: not only what arrived, but what the system made of it and when.
Polling over push, deliberately. Push was faster and depended on infrastructure that was going away. Polling cost about ten minutes of latency and bought total independence. When that infrastructure was finally destroyed, the log did not notice.
03 / DECISIONS
One writer, many readers. The most valuable property in the system, and the cheapest to give up by accident. Two writers means two truths.
A log, not a queue. A queue forgets what it delivered. A log lets you ask a question tomorrow about data that arrived today, with code that did not exist yet when it arrived.
Validate at the edge, by kind. Cheap where the event enters, impossible once it is downstream of four consumers.
Own the eyes. The layer that sees your life should not live on infrastructure you do not control. Argos was moved off a dying platform service by service, with the event count and the checksum verified on both ends, and kept running the whole time.
04 / STATUS
Running on the machine in the corner of the room, feeding the fleet.