Creating Custom Events

How do you handle event persistence and replay in complex applications?
class EventPersistence {
  constructor(storage) {
    this.storage = storage;
    this.events = [];
  }

  recordEvent(event) {
    const eventData = {
      name: event.type,
      detail: event.detail,
      timestamp: Date.now()
    };
    
    this.events.push(eventData);
    this.storage.save('eventLog', this.events);
  }

  replayEvents() {
    const events = this.storage.load('eventLog') || [];
    
    return events.map(eventData => {
      return new CustomEvent(eventData.name, {
        detail: eventData.detail
      });
    });
  }
}
Next Question (20/20)