obzenflow_core 0.2.1

Core domain layer for ObzenFlow - pure abstractions with minimal dependencies
Documentation

ObzenFlow Core

This crate is an internal implementation detail of the ObzenFlow project. Most users should depend on the top-level obzenflow crate instead.

Layer: Core (innermost). No dependencies on other ObzenFlow workspace crates.

The business-domain nucleus of the framework, defining the types and traits the rest of the system speaks:

  • Event model (ChainEvent, SystemEvent, payloads, context blocks)
  • Journaling contracts (Journal<T>, JournalReader<T>, EventEnvelope<T>)
  • Verification contracts between stages (Contract + built-in contracts)
  • Metrics and observability interfaces (wide-events DTOs, observer/exporter traits)
  • Ports for outer layers (HTTP client and web server abstractions, control-middleware ports)
  • Strong identifiers and time primitives (typed IDs, MetricsDuration)
  • Typed payloads (TypedPayload) for compile-time event type resolution and schema versioning
  • Effect outcome carriers (EffectOutcomeFacts, TypedFactSet) binding an effect's possible outcomes to the exact typed facts a stage may author

This crate intentionally avoids infrastructure concerns (storage, networking, async runtimes, logging). Outer layers implement these interfaces and inject them into runtime services.

License

Dual-licensed under MIT OR Apache-2.0. See LICENSE-MIT and LICENSE-APACHE.