openservicebrokerapi / servicebroker

Open Service Broker API Specification
https://openservicebrokerapi.org/
Apache License 2.0
1.19k stars 434 forks source link

Add a "deferred" polling state #443

Closed krancour closed 5 years ago

krancour commented 6 years ago

I'm certain there are a variety of scenarios where a broker may wish to accept an asynchronous provisioning or deprovisioning request (as per usual), but might not actually start the action immediately. Purely for the benefit of transparency, in these scenarios, it might be useful for brokers to optionally report a new state: "deferred".

While this could be optional for the broker, clients would have to understand the new state and treat it as the equivalent of "in progress", i.e. by continuing to poll until the operation progresses into an "in progress" state, and then would continue to poll until the operation succeeds or fails, as is the case today.

This new imposition on the client would make this a breaking change, so this proposal is meant for consideration in the 3.0 timeframe.

mattmcneeney commented 6 years ago

@krancour Could this not be represented by the broker returning the following to a call to /last_operation:

{
   "state": "in progress",
   "description": "This operation has not yet started"
}

If a platform is going to treat "state": "deferred" exactly the same as "state": "in progress", what is the benefit of having this additional state? Do you have a use case where this would be useful?

krancour commented 6 years ago

That could work, for sure. I just think it's an odd solution because "in-progress" and "not yet started" are two contradictory sentiments.

mattmcneeney commented 5 years ago

Closing this as I believe the "state": "in progress" covers this scenario well enough for now. Hope that is OK!