Events

Decouple application logic with an async event system supporting sync and queue-backed listeners.