Is there a guide on the right actions to be taking on discovery? or which existing binding(s) are good to look at?
Are there specific recommendations on threading - should i be using a pool? are there limitations on how data should be passed between threads? i am used to xaml where you can only interact with the UI on the main thread, and use a dispatcher to marshall calls back to that thread.
AFAIR/AFAIK Discovery process is already managed by openHAB thus you can skip own thread management unless really required. Each and every discovery service instance can declare its own timeouts which are then get into account.
Discovery results are reported back to framework which store it and then let UI fetch it via REST endpoints thus you don’t need to worry about marshaling. It does not happen in discovery thread. All you need to do is reporting
DiscoveryResult in the end.