[Maya Python] Getting Mesh Verts on Mesh Edit

Just wondering what the best practise would be for getting the vertex positions of a selected mesh each time the user edits its topology?

An example would be:

User moves vert[0] of pCube.
>>function reads all vert positions of pCube

User extrudes face[0] of pCube, creating new verts.
>>function reads all vert positions of pCube again.

The first thing that springs to mind is scriptjobs, but I’ve heard to use them with caution (is there even an onMeshEdit event?).

How would you guys tackle this?

a scriptJob that watches for a connectionChange on the .inMesh property of the object will catch any edits that create connection history without too much overhead, and will catch all topology changes but won’t see moves, rotates or scales on components.

Or if you want to use the API, there is a PolyMessage class that has a addPolyTopologyChangedCallback method Autodesk Maya 2013 API Documentation

on the topic of Messages and the API, it is possible for a callback to emit the name of the Node that is affected? In other words, is it possible to emit the name of a DAG node when it is deleted, without attaching scriptjobs to every single Dag node in the scene, or without comparing the contents of the scene before and after the delete?

EDIT: Nevermind, just found this!
http://docs.autodesk.com/MAYAUL/2013/ENU/Maya-API-Documentation/index.html?url=cpp_ref/class_m_d_g_message.html,topicNumber=cpp_ref_class_m_d_g_message_html