Currently, the resource provider manager used to abstract away resource provider subscription and state does not persist resource provider information. It has no notion of e.g., disconnected or forcibly removed resource providers. This makes it hard to implement a number of features, e.g.,
- removal of a resource provider and make it possible to garbage collect its cached state (e.g., in the resource provider manager, agent, or master), or
- controlling resource provider resubscription, e.g., by observing and enforcing resubscription timeouts.
We should extend the resource provider manager to persist the state of each resource provider (e.g., CONNECTED, DISCONNECTED, its resources and other attributes). This information should also be exposed in resource provider reconciliation, and be reflected in master or agent endpoints.