Expand description
§ObzenFlow Core
Core defines the domain types and contracts shared by the framework. Application
authors access these through obzenflow::schema, obzenflow::effects, and the
other public facade modules.
Core is the innermost layer. It has no dependency on Runtime, Adapters, flow
construction, or Infra. The companion obzenflow_core_derive crate generates
implementations of Core’s schema contracts at compile time.
§Responsibilities
- Events, typed payloads, fact carriers, identifiers, and causal context.
- Journal append and read contracts, factories, archives, and run manifests.
- Delivery, effect, and stage-verification contracts.
- Measurement snapshots and the
MetricsSnapshotExporterpublication port. - HTTP, web endpoint, and control-policy ports implemented by outer layers.
Runtime executes flows through these contracts. Storage, network clients, servers, and reporting implementations belong to outer layers.
§Record contract
A logical journal record contains envelope and payload. Event authors supply
envelope.provenance.event; the journal assigns envelope.provenance.journal.
Application facts preserve their JSON values, including scalars, arrays, and null.
Execution accounting and causal identity belong to provenance. Optional
envelope.observability attachments carry measurements and their capture stamps.
Changing observation retention does not remove payloads, effect evidence,
delivery receipts, or atomic membership. Missing measurements remain distinct
from measured zero.
JOURNAL_SCHEMA_VERSION is the shared authority for records, framing, and
manifests. The current schema is 5.0; older archives require a new recording.
Infra owns the encoding described in the
journal format reference.
§License
Dual-licensed under MIT OR Apache-2.0. See LICENSE-MIT and LICENSE-APACHE.
Re-exports§
pub use effect_binding::BindingEvidenceDigest;pub use effect_binding::BindingEvidenceError;pub use effect_binding::BoundedBindingEvidence;pub use effect_binding::EffectBindingIdentity;pub use effect_binding::MAX_BINDING_EVIDENCE_BYTES;pub use error::Result;pub use event::chain_event::ChainEvent;pub use event::context::MiddlewareExecutionScope;pub use event::envelope::EventEnvelope;pub use event::journal_record::JournalRecord;pub use event::payloads::JournalPayload;pub use event::EventId;pub use event::AdmissionSeq;pub use event::EventType;pub use event::JournalWriterId;pub use event::ReaderGeneration;pub use event::WriterId;pub use journal::journal_error::JournalError;pub use journal::journal_owner::JournalOwner;pub use journal::Journal;pub use event::schema::DeclaredStageFactSet;pub use event::schema::EffectOutcomeFacts;pub use event::schema::Member;pub use event::schema::MiddlewareContextKey;pub use event::schema::OneFactStageOutput;pub use event::schema::StageFactSet;pub use event::schema::StageOutputFacts;pub use event::schema::StageOutputs;pub use event::schema::SubsetOf;pub use event::schema::TypedFact;pub use event::schema::TypedFactSet;pub use event::schema::TypedFactSetError;pub use event::schema::TypedFactType;pub use event::schema::TypedPayload;pub use id::CycleDepth;pub use id::FlowId;pub use id::JournalId;pub use id::SccId;pub use id::StageId;pub use id::StageKey;pub use id::SystemId;pub use contracts::Contract;pub use contracts::ContractContext;pub use contracts::ContractEventScope;pub use contracts::ContractEvidence;pub use contracts::ContractReadContext;pub use contracts::ContractResult;pub use contracts::ContractState;pub use contracts::ContractViolation;pub use contracts::ContractWriteContext;pub use contracts::DeliveryContract;pub use contracts::DivergenceContract;pub use contracts::DivergenceThresholds;pub use contracts::HashMismatch;pub use contracts::SourceContract;pub use contracts::TransportContract;pub use contracts::ViolationCause;pub use chrono;
Modules§
- ai
- Provider-agnostic AI contracts and utilities.
- build_
info - Build and version information.
- composite
- Calculates a composite group’s status from its member stages.
- config
- Configuration vocabulary (FLOWIP-010).
- contracts
- effect_
binding - Durable, credential-free effect-binding evidence types (FLOWIP-132a).
- error
- Common error handling types for ObzenFlow
- event
- Core event types
- http_
client - Core outbound HTTP client abstractions.
- id
- Strongly typed identifiers for core domain entities
- ingress
- Hosted-ingress admission and ingestion.
- journal
- Core journal abstractions
- metrics
- Metrics traits and types for the core domain
- time
- Time-related types for consistent duration handling
- web
- Portable HTTP endpoints, managed surfaces, requests and responses. Listener construction and hosting policy belong to infrastructure.
Macros§
- stage_
fact_ set - Declare a stage fact set in type position (FLOWIP-120z):
Structs§
- Ulid
- A Ulid is a unique 128-bit lexicographically sortable identifier
Derive Macros§
- Effect
Outcome Facts - Derive an effect outcome carrier (FLOWIP-120m).
- Stage
Output Facts - Derive a pure stage output carrier (FLOWIP-120z).