continuum_store_memory 4.1.0 copy "continuum_store_memory: ^4.1.0" to clipboard
continuum_store_memory: ^4.1.0 copied to clipboard

In-memory EventStore implementation for the continuum event sourcing library.

Changelog #

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased] #

4.1.0 - 2026-01-22 #

Added #

  • Projection System: A comprehensive read-model projection framework with automatic event-driven updates.
    • Projection<TReadModel, TKey>: Base class for event-driven read model maintenance.
    • SingleStreamProjection<TReadModel>: Projections that follow a single aggregate stream.
    • MultiStreamProjection<TReadModel, TKey>: Projections that aggregate across multiple streams.
    • ProjectionRegistry: Central registry for projection registration and lookup.
    • ReadModelStore<TReadModel, TKey>: Storage abstraction for read models with InMemoryReadModelStore implementation.
    • ProjectionPositionStore: Tracks projection progress with InMemoryProjectionPositionStore implementation.
    • InlineProjectionExecutor: Synchronous execution for strongly-consistent projections.
    • AsyncProjectionExecutor: Asynchronous execution for eventually-consistent projections.
    • PollingProjectionProcessor: Background processor for async projections.
    • ProjectionEventStore: Interface for event stores that support projection queries.
  • EventSourcingStore now accepts an optional projections parameter to enable automatic inline projection execution.
  • InMemoryEventStore and HiveEventStore now implement ProjectionEventStore for projection support.

Fixed #

  • continuum_missing_apply_handlers no longer requires apply<Event>(...) handlers for creation events marked with @AggregateEvent(creation: true).
  • Fix ContinuumEvent contract so core compilation succeeds (restoring required id, occurredOn, and metadata fields).
  • Fix ContinuumEvent.metadata typing to match examples/generator fixtures (Map<String, Object?>).
  • Stabilize continuum_generator tests in CI by falling back to .dart_tool/package_config.json when Isolate.packageConfig is unavailable.
  • Run melos run test with --concurrency 1 to reduce workspace test flakiness.

4.0.0 - 2026-01-14 #

Breaking Changes #

  • BREAKING: Creation events are classified via @AggregateEvent(creation: true) (no longer inferred from aggregate create* methods).

Added #

  • Added creation flag to @AggregateEvent for explicit creation-event declaration.
  • Generator now validates that each creation event has a matching createFrom<Event> static factory on the aggregate.
  • Added a lint that warns when an @Aggregate() class is missing required createFrom<Event>(...) factories for creation events.
  • Added a Quick Fix action to implement missing createFrom<Event>(...) factory stubs.
  • Updated the example package to show both missing apply handlers and missing creation factories warnings.

3.2.0 - 2026-01-14 #

Added #

  • Added a custom lint rule that reports when a non-abstract @Aggregate() class mixes in the generated _$<Aggregate>EventHandlers but does not implement all required apply<Event>(...) methods.
  • Added a Quick Fix action to implement missing apply<Event>(...) handler stubs.
  • Added a runnable example package under example/ showing the lint in action.

3.1.1 - 2026-01-13 #

Fixed #

  • Aggregate event discovery now scans all libraries in the package, so mutation apply methods and dispatch cases are generated even when the aggregate library does not import the event library (the aggregate still must import the event type for compilation).

3.1.0 - 2026-01-13 #

Added #

  • Added an example demonstrating code generation for abstract class and abstract interface class aggregates.

Fixed #

  • Combining builder now skips non-library Dart files (e.g. *.freezed.dart part files) when scanning lib/, preventing build failures in apps using Freezed.

3.0.1 - 2026-01-12 #

Changed #

  • Bump zooper_flutter_core to ^1.0.3.

3.0.0 - 2026-01-12 #

Breaking Changes #

  • BREAKING: ContinuumEvent now implements ZooperDomainEvent for better integration with other Zooper packages.

Fixed #

  • JsonEventSerializer.deserialize now always includes a metadata key (empty when no stored metadata) in the payload passed to fromJson.
  • Code generation now emits ContinuumEvent for applyEvent(...), replayEvents(...), and createFromEvent(...) (instead of the non-existent DomainEvent).

2.0.0 - 2026-01-08 #

Breaking Changes #

  • BREAKING: Renamed @Event annotation to @AggregateEvent to avoid naming conflicts with user code.
  • BREAKING: Renamed ofAggregate: parameter to of: in @AggregateEvent annotation.
  • BREAKING: Renamed DomainEvent class to ContinuumEvent to avoid naming conflicts.
  • BREAKING: Renamed Session interface to ContinuumSession to avoid naming conflicts.
  • BREAKING: Renamed StoredEvent.fromDomainEvent() to StoredEvent.fromContinuumEvent().
  • BREAKING: Updated all parameter names from domainEvent to continuumEvent.

Other Changes #

  • Updated generator implementation for analyzer 8 API changes.
  • Updated generator dependencies for source_gen ^4.0.0 (including analyzer and build).

1.0.0 #

  • Initial release with event sourcing core functionality.
  • Added @Aggregate() and @Event() annotations for code generation.
  • Added strong types: EventId, StreamId.
  • Added persistence interfaces and store implementations.
  • Added exception types for error handling.
0
likes
160
points
446
downloads

Publisher

verified publisherzooper.dev

Weekly Downloads

In-memory EventStore implementation for the continuum event sourcing library.

Homepage
Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

continuum, zooper_flutter_core

More

Packages that depend on continuum_store_memory