Background
The recent changes in dotnet/aspire#10354 impact how parameters are accessed in the CommunityToolkit Aspire libraries. Specifically, blocking calls to ParameterResource.Value must be replaced with the asynchronous IValueProvider.GetValueAsync API (this was implicit before 9.4 but will be a public API afterwards).
Problem
- Any blocking calls to
ParameterResource.Value, especially in asynchronous pipeline methods like AfterEndpointsAllocatedAsync, risk deadlocking or blocking app host startup.
AfterEndpointsAllocatedAsync is slated for deprecation in Aspire 9.4.
- There is an urgent need to refactor toolkit code to
- Eliminate blocking calls
- Move off
AfterEndpointsAllocatedAsync and instead use the eventing API for endpoint resolution (ResourceEndpointsAllocated)
Action Items
References
If any APIs or code paths are found that are not compatible with the new async pattern or eventing API, please document them here and propose migration steps.