I have few questions:
1. The consistency check always run full data? Instead of run all data you can run only the data which modified after last checked time.
2. If application allows user to specify their own business logic, the data integrity check cannot be added generalized form. Any suggestion on this?