Skip to content

Add new RabbitMQ-based client/server API

New conflict resolution layer implementation using RabbitMQ to communicate between client and server processes.

For each set methods in the ProvenanceStorageInterface the client will dispatch the information to be stored to different queues, based on the id of the associated entity (in case of a relation, the source entity).

The server will spawn one sub-process per queue to handle those particular requirements. The split policy is defined in the server class in such a way that no writing conflicts should occur in the underlying storage.

For the get methods, the client directly access the underlying storage object, for which it has its own connection (ie. no communication through RabbitMQ occurs).

Docs: https://hedgedoc.softwareheritage.org/RJQjBSR2TmuVzD6NRFFCeg


Migrated from D6165 (view on Phabricator)

Merge request reports