API:  divide events into synchronous and asynchronous events