Refactor design to produce and consume on an event queue