A dependency represents a reliance of the dependent on the provider for some information the dependent contains or uses.
Dependency Manager Interface
A dependent has the ability to know whether or not it is valid and to mark itself as valid or invalid.
A provider is an object that others can build dependencies on.
A ProviderInfo associates a DependableFinder with a UUID that stands for a database object.
ProviderList is a list of Providers that is being tracked for some object other than the current dependent.