Updates to Support Async Processing

PostProcess Plugin Forwarder


PostProcess Service Implementation (JMS)


PostProcess Service Implementation (Default)


PostProcess Plugin Processor

Parallel processing of simultaneous conflicting updates 

  1. Should this design account for multiple events on the same piece of data being processed in order. For instance if we receive and update for Product A and while that update is processing a delete event comes through. If the delete is processed out of order from the update what should happen? Potential solutions could include a persistent Processing Manager to help coordinate requests coming in, but it would also add complexity to the design
    1. To support user updates that can occur during long-running PostProcess plugins where the metacard has changed since it was handed off to the PostProcess plugins, partial updates of plugin changed data need to be supported.  This processing will involve saving an initial metacard and comparing with the resulting metacard to determine the differences generated by the PostProcess plugins. Once the differences are determined, the latest version of the metacard will be fetched and the differences applied before submission back to the Catalog Framework as a metacard update.

Decision

Created an asynchronous processing framework prototype.

https://github.com/codice/ddf/tree/2.22.x/catalog/async

Due to lack of interest, removed in DDF 2.23.