The Policy Framework uses asynchronous messaging to support scalable deployment of Policy Engines and also for scalable deployment of participants for Automation Composition Management. Currently, Asynchronous messaging uses DMaaP messaging.

DMaaP Messaging

Discussions are ongoing in the DMaaP project on two separate but related improvements, see DMaaP MR Architecture Evolution Considerations

  1. Replacement of the Kafka/Zookeeper back end with a more Kubernetes-friendly Kafka/Strimzi back end
  2. Improvements to DMaaP Message Router (MR) to make it more maintainable and of higher quality.

Point 1 above does not make much practical difference to the Policy Framework because the Policy Framework does not interact directly with the Kafka back end.

Point 2 is of interest because there may be minor API changes to the DMaaP MR API.

Proposal: The Policy Framework will adapt its current DMaaP support to continue to support DMaaP messaging.

Kafka Messaging

The Policy Framework could provide support to allow messaging to be carried over Kafka. This would be an option available at installation time. At installation, the Policy Framework could be configured to use either DMaaP or Kafka messaging. Kafka messaging would allow installation of the Policy Framework without having a dependency on DMaaP.

Observations:

  • policy/common has a common communication utility package for handling event messaging protocols, all messaging uses this utility package
  • The utility package is implemented as a Java Interface, with implementations allowed for various messaging protocols
    • Currently DMaaP is the only actual messaging protocol supported and the only implementation
  • That implementation will directly use the Kafka Java Client, which has a straightforward Java API
  • At installation, the Policy Framework wouldl be configured to work towards whatever Kafka deployment is available; Strimzi or Zookeeper backend

Questions:

  • Is drools-pdp and xacml-pdp support for Kafka for messaging triggers required

Proposal: Introduce Kafka messaging as an optional messaging type

  • No labels