Extract event processing framework into a separate project
Make record and update function pluggable, and add a sanity test
Make record and update function pluggable, and add a sanity test
Merge with initial commit from github.