Um log é tudo o que você precisa. Acontece que você pode simplesmente construir um banco de dados de log com ganchos no CRUD e manter índices secundários arbitrários. É tão bom quanto o martelo de Thor com extensões.