How to use event-atoms
Read the catalog over HTTPS
Every artifact is served under stable URLs with correct content-types:
curl https://event-atoms.com/exports/catalog.json
curl https://event-atoms.com/atoms/event-type/user-created.json
curl https://event-atoms.com/streams/user-lifecycle.json
curl https://event-atoms.com/schemas/composition-v1.json Resolve an event stream
A stream composition lists references to atoms by URI and version. To instantiate the stream, fetch each referenced atom and assemble: event type → schema → channel → subscription pattern → delivery semantics.
// pseudo-code
const composition = await fetch("/streams/user-lifecycle.json").then(r => r.json());
const refs = composition.references;
const eventType = await fetch(uriToUrl(refs.event_type.ref)).then(r => r.json());
const schema = await fetch(uriToUrl(refs.schema.ref)).then(r => r.json());
const channel = await fetch(uriToUrl(refs.channel.ref)).then(r => r.json());
const subscriptionPattern = await fetch(uriToUrl(refs.subscription_pattern.ref)).then(r => r.json());
const deliverySemantics = await fetch(uriToUrl(refs.delivery_semantics.ref)).then(r => r.json());
const stream = compileStream({ eventType, schema, channel, subscriptionPattern, deliverySemantics }); Compatibility rules
Rules in /exports/catalog.json (under the rules
key) declare predicates over atoms. Example: delivery-semantics/exactly-once requires
a channel with partitioning: keyed. A composition that violates a
require-effect rule is malformed.
Schema evolution
v0.1 ships the catalog and its JSON Schema; schema evolution rules (backward-compatible changes,
breaking changes, migration paths) are tracked via schema-evolution rule atoms and
enforced in CI via python3 scripts/validate.py.