Skip to content

Conversation

@kzu
Copy link
Member

@kzu kzu commented Jun 20, 2025

We had a complicated mechanism that relied in feature flags based on presence of services, split storage between message and conversation, forced sequencing outside of the pipeline configuration, etc.

This revamp achieves the following:

  • Single handler and extension method to configure conversations UseConversation.
  • Single storage manager that uses a two-strategy approach:
    • Table storage for active conversation header and individual messages
    • Blob storage for full conversations (due to size restrictions on table storage that may be hit).
  • Honoring the user's preference in the pipeline where the conversation loading/restoring happens: we're now just a regular handler like any other.

We also make the target storage account pluggable via DI, but with a sensible OOB default that leverages the built-in AzureWebJobsStorage setting which is already being used by the queue and table for deduplication.

We had a complicated mechanism that relied in feature flags based on presence of services, split storage between message and conversation, forced sequencing outside of the pipeline configuration, etc.

This revamp achieves the following:

- Single handler and extension method to configure conversations `UseConversation`.
- Single storage manager that uses a two-strategy approach:
   * Table storage for active conversation header and individual messages
   * Blob storage for full conversations (due to size restrictions on table storage that may be hit).
- Honoring the user's preference in the pipeline where the conversation loading/restoring happens: we're now just a regular handler like any other.

We also make the target storage account pluggable via DI, but with a sensible OOB default that leverages the built-in AzureWebJobsStorage setting which is already being used by the queue and table for deduplication.
@kzu kzu requested a review from adalon June 20, 2025 18:05
@kzu
Copy link
Member Author

kzu commented Jun 20, 2025

35 passed 35 passed 7 skipped

🧪 Details on Ubuntu 24.04.2 LTS

from dotnet-retest v0.7.1 on .NET 8.0.17 with 💜 by @devlooped

@kzu kzu merged commit 4698689 into main Jun 20, 2025
7 checks passed
@kzu kzu deleted the dev/conversations branch June 20, 2025 18:08
@devlooped devlooped locked and limited conversation to collaborators Jul 21, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants