Just amazing products and company, an inspiration for the rest of us!
So, I’m sorry to put this question here but the go-plugin system does not look to have its own category
I’m building an application where i load 2 different types of plugins, similar to what Terraform does… a provider and a resource-driver-plugin. The application has a API endpoint and each incoming request is put in channel where N workers grab that payload.
The worker first uses the provider plugins to do a lookup (the plugin will have a database connection or make a northbound api etc) after this is done a resource plugin is selected and the resource plugin will send N request to north-bound system and get a ID in return. the Workers will also listen from complete jobs that the northbound application publish in a queue and use the plugin to parse the payload to a uniform output that returns to the caller of the API.
This would make the N workers grab a plugin from the pluginMap (the pluginMap is protected by a mutex to avoid race to the pluginMap) and it will execute the functions requested from the southbound API. SO!
I have understod that your yamux lib is creating new tcp connections over a single tcp connection. would this work in my use case? or should i let each worker initiate its own pluginMap ?