Thank you very much. One more thing to clarify!
I would like to confirm one specific point regarding the ordering guarantees of Endpoint Security notifications.
Does Endpoint Security guarantee that the order in which NOTIFY events are delivered to a single es_client_t matches the actual chronological order in which the corresponding file operations occurred in the kernel?
For example, if a process performs open() followed by close() on the same file descriptor, is it guaranteed that ES_EVENT_TYPE_NOTIFY_OPEN will be delivered before ES_EVENT_TYPE_NOTIFY_CLOSE, assuming both events are generated, neither is dropped, and the client is subscribed to both event types?
The es_new_client documentation guarantees delivery in the order the system delivers messages, while the WWDC20 session "Build an Endpoint Security app" states that ES delivers messages in the same order as the events occurred on the system (video 32:50).
I would appreciate confirmation of whether this guarantee applies to the actual chronological order of file operations in the kernel, rather than just the order in which messages are queued or delivered to the client.