There are many ways to do auditing, and people have many different auditing needs. Most of the topic is not at all specific to DevForce. However, it is often advantageous to create audit records server-side, and for that the IEntityServerSaving and IEntityServerSaved interfaces are your keys to a very useful DevForce facility.[1]
If you provide a server-side class that implements IEntityServerSaving, it will get called whenever entities are submitted for a save. An OnSaving() method mandated by the interface gets an EntityManager that contains the entities being saved. You could create audit records for any or all of them and add those audit records to the EntityManager that will be submitted for saving. The base records and audit records would all be part of the same transaction.
You would probably want to remove the audit records from the set of records returned to the client, and you could do that in the OnSaved() method of your IEntityServerSaved implementation. It gets an EntityManager containing the records that were saved.
Greg Dunn
-------------------------
[1] There are also client-side Saving and Saved events that could be handled if for some reason you wanted to create audit records client-side.