International-Data-Spaces-Association / ids-specification

The Dataspace Protocol is a set of specifications designed to facilitate interoperable data sharing between entities governed by usage control and based on Web technologies. These specifications define the schemas and protocols required for entities to publish data, negotiate Agreements, and access data in a data space
https://docs.internationaldataspaces.org/dataspace-protocol/
Apache License 2.0
31 stars 14 forks source link

Differences between `TransferTerminationMessage` and `TransferError` #57

Closed ndr-brt closed 1 year ago

ndr-brt commented 1 year ago

Reading through the Transfer Process protocol file it's not really clear when a TransferTerminationMessage should be preferred to a TransferError.

Seems that the first causes a termination of the transfer, while the latter not, but maybe it would be better to detail in which cases TransferError could be used and how to interpret it.

juliapampus commented 1 year ago

As stated in the document, the TransferError is not a message that can be actively send by a provider or consumer like a TransferTerminationMessage or some other transfer messages:

It does not cause a state transition.

In the HTTP binding document, the TransferError is defined as the response body (code 4xx) resulting from an unsuccessful transfer message. The document also states

If an error body is returned [...]

The if implies that the error can be sent but must not, so we don't predefine further processing.

I agree, we could specify this further, especially within the specifications for the bindings.

ndr-brt commented 1 year ago

Ok, got it, so it's the equivalent of a failed response in the REST binding, it would be effectively used only on an asynchronous channel (like a MQ or similar).

Maybe ACK and KO could be described both in a different section, explaining that in a REST binding they are represented by the successful response and the failed one respectively.