Core Concepts

Streams, Facts, and Bundles

Audience: Integration Engineers / Technical Architects

Understanding Horizon's data model is essential for effective integration.

Streams

A stream is a timeline of related facts. You define the stream_id; Horizon imposes no business semantics.

PropertyDescription
stream_idClient-provided identifier (e.g., "incident-2024-01-26")
tenant_idScoping identifier for multi-tenant isolation
Created implicitlyWhen first fact is sealed

Facts

A fact is an immutable record sealed at a specific moment. Once sealed, it cannot be modified or deleted.

PropertyDescription
fact_idUnique identifier assigned by Horizon
actorWho declared this fact (your identifier)
sealed_at_msAuthoritative timestamp from Horizon
custom_payloadYour opaque business data
fact_hashSHA-256 of canonical representation
prev_hashLink to previous fact in chain

Bundles

A bundle is an exportable, self-contained proof package. It contains all facts, their hashes, chain linkage, and Horizon's signature.

PropertyDescription
Self-containedAll data needed for verification
SignedEd25519 signature by Horizon
PortableWorks in any system, any jurisdiction
IndependentVerifiable without Horizon access

"Horizon records what you declare. The meaning of your declarations is yours to define."