-
Notifications
You must be signed in to change notification settings - Fork 283
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New skill handling support in botbuilder JS SDK with Directline Speech #1655
Comments
@darrenj : Can you comment? |
Hi @alopix Thanks for the details. We're releasing a new JS build today (4.7.2, currently on our daily build server) to fix a bug around closed web sockets and unhandled exceptions. This is being regressed now, for release (hopefully) in the next 24 hours. Regarding the concerns around websocket cleanup, I've moved that to a separate issue to track. We'll pick that up in R8. |
@alopix, can you elaborate on the config you're using with Web Sockets and DirectLine-Speech? Once I know more about your scenario & config, I can find the right person to address your horizontal scaling question. |
As commented on the other new ticket: Giving feedback on the linked ticket:
combined with (both top-level)
Would not work, as |
Update: We'll be having a number of discussions on this early next week and we expect to come up with a plan after them. Expect a relevant update and plan mid next week. |
Versions
botbuilder 4.7
node 10.16.3
macOS 10.14
Describe the bug
TL;DR;
It looks like the botbuilder-skills package is no longer being maintained, and instead similar functionality has been rolled into the botbuilder package. However, this new functionality does not appear to support Direct Line Speech out of the box - is there a timescale for that?
Full Description:
We discovered that the previous botbuilder-skills SDK seems to have been deprecated or at least not been worked on in a while and skill support been added to the main botbuilder JS SDK. To date we have been depending on the botbuilder-skills package.
Evaluating the changes necessary to migrate we noticed, that the example (https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/80.skills-simple-bot-to-bot) is specifically targeting DirectLine, as does the SDK itself. Support for DirectLine Speech is only possible with quite a bit of additional work as the way the adapter is being handled is not the same.
As there's not a single BotFrameworkAdapter but one for every WebSocket connection, it would also mean the new SkillHandler as well as ChannelServiceRoutes have to exist multiple times, which results in every conversation/connection resulting in a different endpoint via the SkillHandler (skillEndpoint.register(server, '/api/skills');).
Which currently is not easy to cleanup as the WebSocket does not seem to expose a disconnected event. This would result in a memory leak.
Apart from that, the solution does not necessarily scale with DirectLine Speech and multiple bot instances. A skill would only know the load balancer's URL and therefore might post back the response to an incorrect instance of the bot, which does not actually maintain the open client WebSocket connection.
A possible workaround for that would be some kind of message queue between skill and skill handler to distribute the responses – which is quite a bit of additional work.
I wonder if there's a different scaling solution Microsoft had in mind when designing this new skill architecture.
[bug]
The text was updated successfully, but these errors were encountered: