How can we track a publication has changed anyway end to end?

Hi, I want to know 3 things here:
1). How can we track if a publication has changed anyways in SDL. It includes each and every object in the baseline of a publication and publication itself?
2). Is it possible to trigger any event (API call) on save button?
3).  Is there any way to do an automatic cleanup?
Thanks