> I envision events to be events that change the database.

This doesn't seem adequate. Don't we want to know whether our self-checks are running? Why have a separate system for logging that? Aren't we going to want to run A/B tests in the future, tracking user behavior even if it doesn't change the database directly? Why not use `events` to track that?