arc-core 0.2.3

Event sourcing primitives for arc framework (headless, no web dependencies)
Documentation

arc-core

Headless event-sourcing primitives for Arc.

arc-core contains the framework contracts and in-memory helpers used by Arc applications and storage adapters. It has no web framework or database dependency.

What It Provides

  • Event: immutable domain event envelope with audit metadata.
  • EventStore: append/load/stream/snapshot persistence trait.
  • EventBus: publish/subscribe trait plus in-process implementations.
  • Aggregate: command handling and state reconstruction contract.
  • CommandBus: load aggregate, handle command, append events, publish events.
  • ReadModelStore: backend-neutral read-model persistence trait.
  • Projector and ProjectionEngine: rebuildable projection support.
  • Audit, access-log, session, snapshot, and integrity-chain primitives.

Minimal Example

use arc_core::audit::AuditMetadata;
use arc_core::event::Event;
use serde_json::json;

let event = Event::new(
    "User",
    "user-123",
    1,
    "UserRegistered",
    json!({ "email": "ada@example.test" }),
)
.with_audit(AuditMetadata::system());

assert_eq!(event.aggregate_type, "User");
assert_eq!(event.event_type, "UserRegistered");

Feature Flags

  • test-utils: exposes in-memory/test helpers for downstream integration tests.

Stability

This crate is pre-1.0. Public traits are intended to be stable within a compatible 0.2.x line, but breaking API changes may ship in minor versions until 1.0.

License

MIT