This class is currently relying on a ConcurrentHashMap but since it's essentially read only after boot phase - with the notable exception of rare events such as dynamic discovery of a new type - it could be optimised for intense reading operations.