What happened is written once, read everywhere.

All capabilities · Running

The most valuable thing a system holds is not its features. It is the accumulated record of what happened, in a form that can still be read when the software that wrote it is gone. Unifyhub treats that record as the primary artifact and the services as the temporary part.

09:04workshop.member.joined

09:12workshop.session.scheduled

context
neighbourhood-workshop
on behalf of
jamie · coordinator
trace
7f3c…a19
schema
session.scheduled v2

09:31inventory.part.reserved

read byautomationsearchanalyticsaudit

Illustrative example · one event, its envelope, and the consumers that read it without asking the domain

How a happening becomes a record

  • 1. It is wrapped in a stated shape

    Every event carries an envelope: what kind of thing happened, in which context, on whose behalf, with which trace, at what time. The envelope is versioned and public, so a consumer written years later still knows what it is reading.

  • 2. It is validated against a registry

    Record shapes live in a shared registry rather than inside the service that emits them. A producer cannot quietly change what a record means, and a consumer can check compatibility before it breaks.

  • 3. It is published reliably

    A service that changes its own state and announces the change must not be able to do one without the other. Publication is tied to the state change itself, so the record and the announcement cannot disagree.

  • 4. It is consumed many times

    The same event feeds automation, indexing, search, analytics, notification, and audit. Nothing has to ask a domain for permission to remember what it already announced.

The stores

  • Systems of record

    Durable transactional stores where a domain's truth lives, owned by that domain and by nobody else.

  • Streams

    The ordered log of what happened, which is what makes late consumers, replays, and new projections possible without asking the past to be re-run.

  • Analytical and search stores

    Derived shapes for questions the transactional store should not be asked: aggregation, retrieval, similarity, time series, relationships.

  • Object storage

    The place large artifacts live, referenced from records rather than copied into them.

The rule about derived data

Anything derived must stay derivable. Indexes, projections, caches, embeddings, and dashboards are rebuildable from the record, never a second source of truth. A community that loses a derived store loses time, and a community that loses the record loses itself.

Why this is a sovereignty question

Portability is decided here, long before anyone asks for an export. If events are typed, registered, and logged, a community can leave with a stream of what happened and reconstruct meaning elsewhere. If the record only exists as the private internals of one product's database, every export will be a lossy screenshot of a moment.