...
- Create a new JPA data structure to manage the information; or
- Augment the existing PdpGroup data structure to maintain the additional information. This could be done by changing the list of policies to a list of policy-info structures, where each object contained:
- policy name and version
- flag indicating whether the policy is being deployed or undeployed
- list of PDPs for which PAP is still awaiting the outcome of the PDP-UPDATE message
An advantage of approach #2 is that it's easier to transactionalize updates to the PdpGroup along with the list of waiting PDPs. One downside is the extra amount of data that must be retrieved when a PdpGroup is extracted from the DB.
One complicating factor of #2 is that the same class, PdpGroup is used as both the data store structure and the PAP REST API structure. If the same structure were to continue to be used, then the extra data fields would have to be handled (e.g., discarded on input from REST). On the other hand, it could provide a mechanism for clients of the REST API to determine the actual PDP deployment status of each policy.