event-driven consumer