Large business scale often requires scaling Bot Framework App Instance from one to many. To make this work, the bot application needs to serialize memory info to storage, otherwise users may hit conversation state lost issues intermittently, for example, the next request doesn’t affinity on the same instance and then user feels bot doesn’t smartly follow previous conversation, or Skills Bot calling back with the same conversation ID but different instance, and root bot returns 404, etc. A typical root + skills bot infrastructure is like this:
To solve this problem in Bot Framework Composer, developers can configure Bot Framework Composer project setting. However after several updates in Bot Framework Composer, this part configuration guide becomes unclear and not up to date. Therefore, based on practical experience and code understanding on Bot Framework Composer microsoft/BotFramework-Composer, I have compiled the configuration considerations for this part, hoping to help developers and projects that encounter similar situations.
"runtimeSettings": {
……………….
"storage": "CosmosDbPartitionedStorage",
"telemetry": {
"logActivities": true,
"logPersonalInformation": false,
"options": {
"connectionString": ""
}
}
},
"runtimeSettings": {
…….
},
"CosmosDbPartitionedStorage": {
"authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXX",
"cosmosDBEndpoint": https://XXXXXXXXXXXXXXX.documents.azure.com:443/,
"databaseId": "botstate-db",
"containerId": "botstate-container"
},
"skillConfiguration": {},
If everything works well, after several round chats with the root bot, you will find the Cosmos DB has similar data like this:
This means main/root bot persists the conversation data successfully on Cosmos DB, and correct information can be retrieved for multiple instances, or after instances reboot.
If you don’t want the conversation states store there long time, can choose the container Scale & Settings, to change its TTL:
Regarding the usage of CosmosDbPartitionedStorage, can be found from the previous discussion thread in Bot Composer issues:
https://github.com/microsoft/BotFramework-Composer/issues/8864#issuecomment-998963464
https://github.com/microsoft/BotFramework-Composer/issues/8864#issuecomment-1002832254
Happy Bot Framework Development!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.