We are currently using FinalizableReferenceQueue to perform unregistration of sources. This seems a bit wasteful, as we should be able to perform these duties either through a Cleaner, or perhaps through listening to the cache lifecycle.
The lifecycle in GuavaSchemaSourceCache is quite arcane with quite a few outliers. Introduce a custom SoftSchemaSourceCache as its replacement.