Skip to content

Snapshot Support for Performance #248

@jwilger

Description

@jwilger

Overview

Optimize state reconstruction for long-lived streams by periodically saving snapshots and starting reconstruction from snapshot instead of version 0.

Depends on: #247 (Performance Benchmarking Suite) - need performance data to determine if snapshots are necessary and what snapshot frequency makes sense.

Design

SnapshotStore Trait

  • save_snapshot(stream_id, version, state) method
  • load_snapshot(stream_id) returns (version, state)
  • Snapshots stored alongside events
  • Automatic snapshot creation at configurable intervals

Executor Integration

  • Check for snapshot before reading events
  • If snapshot exists, start from snapshot version
  • Apply only events after snapshot

Benchmark-Driven

  • Use benchmark data to determine optimal snapshot frequency

Acceptance Criteria

  • Benchmark data reviewed to determine if snapshots needed
  • SnapshotStore trait defined
  • Snapshot save/load implemented
  • Executor loads from snapshot when available
  • Configurable snapshot frequency
  • Benchmark documents performance improvement

Migrated from beads issue: eventcore-012

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions