parallaxsecond / parsec-book

Parsec documentation
https://parallaxsecond.github.io/parsec-book
Apache License 2.0
12 stars 17 forks source link

Add paragraph about non-breaking changes #120

Closed hug-dev closed 3 years ago

hug-dev commented 3 years ago

Adds some words about allowing non-breaking changes under certain constraints.

In relation with https://github.com/parallaxsecond/parsec/issues/388

hug-dev commented 3 years ago

but now I have questions - how does the client know the service didn't see that field, if capability discovery isn't a thing?

On the request itself it won't be able to (no error is returned). Depending on the contract, it can:

Someone adding an optional field to an operation would have to keep that in mind, that the field might be ignored by the service. Depending on the field's nature, that might not be wanted in which case creating a new contract would be better.

ionut-arm commented 3 years ago

check after the request with ListKeys, if we are talking about a new field inside the KeyAttributes structure

While I sort of understand this approach, it suddenly places the burden on clients to know which parameters might be discarded silently by the service... I get that there's no way to allow for non-breaking changes to be introduced otherwise, but it seems like such a horrible UX from the client's perspective: "Oh, so if I set this particular flag I then have to always check that the service actually cared about it, whereas with all these other flags I don't."

hug-dev commented 3 years ago

I think it should be clear in the documentation of the optional fields that this behaviour is possible... Agree this is not the best.