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