Open kishansagathiya opened 1 year ago
@kanishkatn @edwardmack @axaysagathiya
I would love to know if you have any alternate or additional design ideas for this.
I'm taking a look at the overseer and I have some concerns.
In the Rust implementation, it supports three usecases
In the current implementation, I've noticed that there is only one channel between the overseer and a subsystem. This may lead to channels getting blocked and lead to hard to debug issues.
I suggest not to keep one single channel to send a response message from overseer to the subsystems and add a way for the subsystem to specify the receiver channel along with the message to the overseer.
I'm not sure if this has already been discussed; I'm open to suggestions as well!
I suggest not to keep one single channel to send a response message from overseer to the subsystems and add a way for the subsystem to specify the receiver channel along with the message to the overseer.
This has been discussed. We have plans for adding a response channel in messages itself. If you look at this line in a recent PR, that exactly what happens. https://github.com/ChainSafe/gossamer/pull/3535/files#diff-1798eac991bfd7b07d6a7ff83ec171d8c42e31207d805115c9f8f86a95df33c3R205
This has been discussed. We have plans for adding a response channel in messages itself. If you look at this line in a recent PR, that exactly what happens. https://github.com/ChainSafe/gossamer/pull/3535/files#diff-1798eac991bfd7b07d6a7ff83ec171d8c42e31207d805115c9f8f86a95df33c3R205
Glad y'all are aware and it is being addressed!
I also see a need for these
Sender
interface instead of using the channels directly for better error handling.
Issue summary
lib/parachain
has a bunch of subsystems that need to run in parallel and there are more of these subsystems that will get added.Many of them need to communicate with each other by say calling some function or fetching some data.
It would not be a nice design to connect two parachain subsystems directly, because
It would be nicer to have say a separate subsystem to manage these communications (equivalent to polkadot's overseer subsystem). The idea is that
Because overseer would mandate each subsystem to perform some common task, we could create an interface say
SubSystem
that could have tasks likeFeel free to do these task as separate function or as part of the same function based on your best judgement.
I will update this issue as I go and make my understanding more clear.
Sub Issues
Other information and links