Thank you very much Kevin;
First option, adding trigger is the most straightforward way of gathering all the edits at db level. However it is a static way, when someone creates a new feature class from Desktop/Catalog, adding the trigger to table manually must be remembered.
The other options are also static ways in terms of user & record level.
I am looking for a system level component. I think, SOI is a good example for this kind of job, but it resides at only server. Also GeoEvent Extension (GeoEvent Server) is a really good example for this kind of integrations. Maybe it is also using SOI internally.
You can easily configure and enable SOI for all layers. By its interception capabilities you get all the edits. It is possible to send this data to other systems asynchronously and audit every data edit to every versions. But as I said, it is only available at Server.
What do you think about using ArcObjects Extension for this kind of job? (alterClassExtensionCLSID)
Best wishes
Murat