infrastructure for raising and handling domain event