full round-trip from event to model update