foltzevents

The fleet's event backbone — queue, FIFO per run, bus and pub/sub, over a vocabulary each stack declares for itself.

servicerunning
verifying tokensyes — tokens are being verified against foltz-id

There is no UI beyond this page, on purpose. Everything else needs a foltz-id token: /api/events to publish, /api/events/stream to subscribe, /api/topics to see what is declared. Agents reach it through the events_* MCP tools — start with events_overview.

🚨 It is not a log and must never become one. Events here are declared, closed, small and about intent. That closedness is what makes an unlit shape below mean this did not happen rather than nobody told me.

How an event travels

The declared path. This is the SHAPE, not a report — sign in at /observe to see what actually happened.

100% scroll or pinch to zoom · drag to pan · click a shape to copy its id
event.arrived A service posts one event. It has already happened — the publisher is telling us, not asking us.a publish arrivesevent.arrivedevent.checked Is the topic registered, the kind declared, the payload within the topic's limit, and the topic not paused?the doorevent.checkedevent.stored Sequence within its stream (the ordering guarantee) and a cursor across the store (the resume handle), in one transaction.storedevent.storedevent.fanned Delivered to every live subscriber on the topic, without blocking the publisher. A slow reader loses the push, never the event.fanned outevent.fannedevent.replayed A subscriber asks for everything after the cursor it got to. This is what makes a dropped delivery survivable rather than a hole.read backevent.replayedevent.refused The door said no, and said WHAT would have been legal. A refusal is this control WORKING — it is why an unlit shape means "did not happen".refusedevent.refusedevent.held Kept with its reason, capped and expiring per topic. The publisher did nothing wrong; the vocabulary or a limit is what needs fixing.held as a dead letterevent.heldevent.admitted Register the missing kind or unpause the topic, then let it through. ⚠ It goes through the SAME door — a still-wrong event stays held.admitted after a fixevent.admittedevent.duplicate A publisher could not confirm its send and tried again. AT-LEAST-ONCE WORKING, not an error — the id it minted is what makes the second one free.duplicate — a retryevent.duplicateevent.dropped A subscriber fell behind its buffer. ⭐ Recoverable: the event is stored, and the reader catches up by cursor. Latency lost, not data.dropped to a slow readerevent.droppedacceptedno