Another example. Three DuckDB-based extensions wanted to use the same shared library — libduckdb. The package manager sees files on disk. PostgreSQL sees shared libraries and control files. The user sees `CREATE EXTENSION`. All three layers can disagree. The practical resolution was to mount two of the extensions as sub-extensions under pg_duckdb. It worked, but it took real effort to coordinate and persuade the authors. The lesson is simple: names are part of compatibility, and they do conflict.

Part IV Maintenance in the Wild

Library Conflicts

PIGSTY
DuckDB-family extension dependency and shared library conflict map