Skip to content

Provider initiated negotiations are not implementable #33

@jimmarino

Description

@jimmarino

Bug Report

The contract negotiation state machine allows providers to initiate a negotiation by sending an offer message. However, this sequence is not well-defined and has several implementation issues.

Flow description

An offer flow is only defined in the binding specification. This needs to be pulled out to the abstract negotiation spec document.

Consumers cannot decide which offer notifications to receive

There is no way for the consumer to decide which offer notifications it is interested in. In the current approach, the provider would have to indiscriminately send all new offers, which is not desirable. There is also a major scalability concern as all notifications must be done unicast by the provider to consumers.

Proposal

These issues and the complexity supporting provider-initiated negotiations indicate that the initial requirement prompting this feature may not be modeled correctly. That requirement is to provide a way for providers to notify consumers about an offer. This could be handled in two ways:

  • Catalogs are designed to be crawled periodically. The consumer could perform a diff of the new and previous catalog to determine new offers
  • An event stream dataset could be created by the provider that the consumer negotiates a contract for and opens a transfer process. The event stream provides notifications of new offers.

Either of these approaches addresses the initial requirement, significantly simplifies the DSP design, and allows the consumer to decide which offers it would like to be notified about.

The proposal is to remove provider-initiated negotiations and provide a recommendation to use one of the two approaches in a separate best practices document.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingon-holdwill come back later

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions