Azure / Azure/bicep-extensibility

Add asynchronous operation support for extensibility

Open
#113 0 comments 0 reactions 0 assignees View on GitHub
story: 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.