DS ADR: low-level detector modules - #249
Conversation
| Providing a route through to individual detectors from IBEX may encourage architectural shortcuts to be taken later. For example, a parameter that should conceptually be set via the SCB may get set on individual detectors instead of adding the relevant functionality to the SCB. Over time, these shortcuts may accumulate and increase system maintenance burden to an unsustainable level. | ||
|
|
||
| If instruments begin accumulating scripts or workflows which involve 'fiddling' with detector parameters directly, those instruments will become much harder to migrate to different detectors in future. It will reduce the commonality between instruments, which will increase system maintenance burden. | ||
|
|
There was a problem hiding this comment.
I honestly don't know how to mitigate these risks, and they make me quite uncomfortable. I can already imagine instruments accumulating lots of
def my_begin(i_feel_really_special=True):
...
g.set_pv("...:mod1:super_special_param", 123)
g.set_pv("...:mod2:super_special_param", 456)
...
g.begin()
g.set_pv("...:mod3:really_begin_but_special", 1)
which will then make every support call a horrible game of finding my_begin and figuring out how the 'specials' interact with all the other parts of the streaming system and each other.
Maybe we make writing inconvenient enough that people won't actually do things like the above? For example:
- We could make it so that parameters can be written, but only by specifying their expected value in the config file and pressing a 'reinitialize' button in IBEX. This lets a scientist resend the 'correct' values if needed, but limits changing what the 'correct' values are to us & DSG (and puts it behind a process reboot)
- We could put acess control on the write PVs, so they can only be written to from the streaming server, not the NDX - effectively limiting writing to those PVs to us & DSG.
There was a problem hiding this comment.
we could just underscore their names so it's clear they aren't "public" - we also won't be documenting them in the list of PVs in docs, so they'd probably have to search hard?
| Providing a route through to individual detectors from IBEX may encourage architectural shortcuts to be taken later. For example, a parameter that should conceptually be set via the SCB may get set on individual detectors instead of adding the relevant functionality to the SCB. Over time, these shortcuts may accumulate and increase system maintenance burden to an unsustainable level. | ||
|
|
||
| If instruments begin accumulating scripts or workflows which involve 'fiddling' with detector parameters directly, those instruments will become much harder to migrate to different detectors in future. It will reduce the commonality between instruments, which will increase system maintenance burden. | ||
|
|
There was a problem hiding this comment.
we could just underscore their names so it's clear they aren't "public" - we also won't be documenting them in the list of PVs in docs, so they'd probably have to search hard?
Closes ISISComputingGroup/DataStreaming#108