Description
The create or update pipeline API replaces an existing pipeline with the pipeline in the request. In the case where client A performs a read-modify-write sequence on a pipeline, the possibility of an interleaved update from client B to the pipeline in the middle of that sequence could result in the inadvertent loss of client B's changes. Providing the option for optimistic concurrency control on the pipeline API would enable read-modify-write sequences in which clients could be assured that no external changes had been introduced during the sequence.
The proposed implementation would add an if_version
query parameter to the API similar to the if_seq_no
and if_primary_term
parameters used for optimistic concurrency control in Elasticsearch. When this parameter is specified, the pipeline update would succeed only if the existing pipeline's version matched the specified version. If successful, the pipeline's version would automatically be incremented.