Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues with discovery #863

Closed
3 of 5 tasks
duglin opened this issue Aug 12, 2021 · 5 comments
Closed
3 of 5 tasks

Issues with discovery #863

duglin opened this issue Aug 12, 2021 · 5 comments

Comments

@duglin
Copy link
Collaborator

duglin commented Aug 12, 2021

WIP

https://github.com/cloudevents/spec/blob/master/discovery.md#get-services

  • Any Service previously returned to a client that does not appear in this result can be assumed to be no longer available. I think this needs to be limited to just unfiltered queries since a missing entry from a filtered set could mean that it was deleted or that the filtered field changed.
  • Discovery endpoints MUST support filtering with the following attributes and MUST reject any unsupported filters. we should probably say what the HTTP response code is.
  • is Epoch allowed to be a negative int?
  • "name" must be non-empty string
  • typo: dataschama
@duglin duglin changed the title Issues with discovery GET Issues with discovery Aug 13, 2021
@clemensv
Copy link
Contributor

clemensv commented Oct 4, 2021

The CRUD model of the Discovery API needs work.

  • On the "services" collection, you can POST a list of services, but no single service. The typical pattern is to add a single item with a 201+Location return code
  • On the "services/{id}" node, you can't PUT for an update. POST is not the right choice here.
  • On the "services/{id}" node, you need to construct a payload to DELETE. That is clunky and there should be a query parameter option.
  • Bulk delete is a potential source of pain

On DELETE, here is a generated code snippet

var existingService = await client.GetServiceAsync(i.ToString());
await client.DeleteServiceAsync(
                    existingService.Id, 
                    new Serviceinstance { Id = existingService.Id, Epoch = existingService.Epoch });

@duglin
Copy link
Collaborator Author

duglin commented Oct 13, 2021

From one of our weekly calls: is a Service supports multiple mechanisms by which it can deliver the events, how will that work? They can list each "protocol" in the "Protocols" array, but there's only one "subscriptionurl" field. Should it be an array too - linked with the protocol?

Also, should "subscriptiondialects" be "subscriptionfilterdialects" instead?

@duglin
Copy link
Collaborator Author

duglin commented Oct 13, 2021

How does kafka work? How does the subscriber get the list of brokers to connect to?

@github-actions
Copy link

github-actions bot commented Mar 4, 2023

This issue is stale because it has been open for 30 days with no
activity. Mark as fresh by updating e.g., adding the comment /remove-lifecycle stale.

@duglin
Copy link
Collaborator Author

duglin commented Apr 18, 2023

Moved to: xregistry/spec#8

@duglin duglin closed this as completed Apr 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants