Zum Inhalt springen
Deutsch

In-Memory-Snapshot-Store

InMemorySnapshotStore hält Snapshots in einer Map<persistenceId, Snapshot[]> im Prozess-Speicher. Wie InMemoryJournal ist es der Default, wenn kein Snapshot-Store konfiguriert ist — null Setup, ideal für Tests, niemals in Produktion verwenden.

import { InMemorySnapshotStore, PersistenceExtensionId, ActorSystem } from 'actor-ts';
const system = ActorSystem.create('demo');
system.extension(PersistenceExtensionId).configure({
journal: new InMemoryJournal(),
snapshotStore: new InMemorySnapshotStore(),
});

Implementiert das SnapshotStore-Interface — save, loadLatest, deleteUpTo. Jede persistenceId mappt auf ein Array von Snapshots, geordnet nach Sequenznummer.

  • save(pid, snapshot) — an das Array der pid anhängen.
  • loadLatest(pid) — den Snapshot mit der höchsten seq zurückgeben oder None.
  • deleteUpTo(pid, seqNr) — Snapshots mit seq ≤ seqNr abschneiden.

Die Implementierung ist Referenz-Semantik — jeder andere Snapshot-Store muss dieses Verhalten erfüllen (modulo Persistenz- / Verschlüsselungs- / Kompressions-Spezifika).

  • Tests — schnell, kein IO, sauberer Teardown pro Test.
  • Dev — wenn du keine echte Snapshot-Datei zwischen Runs herumliegen haben willst.
  • Referenz für benutzerdefinierte Implementierungen — lies den Source für den Vertrag.