Generic event-sourcing scaffold