obzenflow_core 0.1.2

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

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.