Seems that the Google-style approach would be a good fit: mostly one codebase with a well-defined dependency graph, and build/test infrastructure that supports fast and comprehensive validation. This would seem to obviate the need for the catalog system described, but probably requires more investment in the build system.