# Events

> Event statements in the database schema declare events that the application will be notified of, such as: adding a new object, deleting an object, updating an object or a specified field of an object (with the exception of array and vector fields), and checkpoint events. The DDL compiler generates handlers that are called when the specified database event occurs. Application threads are spawned to call the `mco_async_event_wait()` API in order to manage events asynchronously.

> Conversely, to manage events synchronously the event handlers must be registered with the runtime by calling generated APIs.

> The following Static API functions are used to manage asynchronous events:

> mco_async_event_wait | Wait on a specified asynchronous event
> mco_async_event_release | Unblock all the threads that are waiting on the specified event
> mco_async_event_release_all | Unblock all the threads that are waiting on all events for the specified database

> Related Topics