graph-prototype icon indicating copy to clipboard operation
graph-prototype copied to clipboard

[4pt] Staging settings with a commit token

Open vimpostor opened this issue 1 year ago • 2 comments

Right now the multiplexed settings only have a single storage of all the active settings. As detailed in https://github.com/fair-acc/graph-prototype/pull/99#pullrequestreview-1647113518, a new "staging" API could allow staging settings with a commit token (e.g. a std::string) such that they are first stored in a background "staging" collection, instead of in the active settings collection.

Then later on, the staged settings can be transported to the actually active collection of the ctx_settings via multiple ways:

  • It could be activated explicitly through the settings API by passing the unique commit token
  • Implicit activation via a tag_t on one of the streaming ports
  • Implicit activation via a pmt_t message on one of the message ports

Some things to consider:

  • Before staging the settings, they should be validated, i.e. check if the keys actually map to existing struct member fields in the node and check for correct types and potential Range constraints (e.g. a field might want to only accept positive integers)
  • Instead of using just a simple string as a commit token, we potentially might want to generate a unique hash - in a git-like fashion

vimpostor avatar Sep 29 '23 08:09 vimpostor