Azure / Azure/bicep-extensibility
Add asynchronous operation support for extensibility
- Dominant language
- C#
- Stars
- 19
- Forks
- 15
- Avg merge
- 3h 11m
- Merged PRs (30d)
- 20
Description
Per discussion with @shenglol - this isn't something that has been scoped/planned yet.
Currently the extensibility contract `SaveResource` is specified as a synchronous operation on the wire. The deployment engine calls into the extensibility provider, and the request must be kept-alive while extensibility is processing the provisioning operation.
It's unclear if this approach will be reliable when we consider operations that may take minutes to complete, and the design intent that extensibility providers should be stateless. Consider how we'd make this work if an extensibility provider needs to call into ARM with an expected provisioning time of minutes. If the connection drops then the extensibility provider will *forget* the operation that was in progress.
We may or may not need changes to the contract, but it feels like we've only thought through the happy-path for this feature.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the SaveResource contract and tracing how the deployment engine keeps the request alive while the extensibility provider processes it. Explore failure behavior when the connection drops during an ARM call lasting minutes. Done means a scoped design, including whether contract changes are required, is agreed and recorded.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend-api-design, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100