interface DomainEvent { readonly type: string; readonly createdAt: Date; readonly payload: T; }