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

Write Abstract Protocol #124

Open
toomim opened this issue Aug 23, 2023 · 3 comments
Open

Write Abstract Protocol #124

toomim opened this issue Aug 23, 2023 · 3 comments

Comments

@toomim
Copy link
Member

toomim commented Aug 23, 2023

(As @mitar has often pointed out) as we get closer to proposing an actual IETF Braid Working Group, it could become worthwhile to write up a formal specification for the Abstract Braid protocol—the core concepts separated from any transport like HTTP.

This spec would help people create Braid-compatible specs for new transports, by articulating the concepts that need to be mapped into any particular transport spec. This spec would generalize:

  • Braid-HTTP
  • Braid-WS
  • Braid-WebRTC
  • etc.

We have a couple very drafts of such a thing floating around:

@CxRes
Copy link

CxRes commented Aug 23, 2023

I can help here with some questions for the notifications portion that I articulated the development of PREP:

  • How does a client discover notification capabilities, ie what is the structure of a discovery request?
  • How does a client request notifications, ie what is the structure of subscription request?
  • What customization for notifications can a client request (imho these are very limited because every customization makes life harder for intermediaries and takes us away from the layering benefits of REST)?
  • What is the structure of the response if there is an error or resource is not available?
  • What is the structure of the response if resource is available, but there is an error in sending notifications or notifications are not available?
  • What is the structure of response ie how does it frame historic patches, the current representation and then notifications?
  • What does a notification look like when:
    • only events are sought?
    • events and patches are sought?
      • what do the patches look like?
    • a more processed combination of the two are sought?
  • How and when does server terminate notifications?
  • How and when does client terminate notifications?

I believe there is a protocol independent answer for each of these questions! I hope this helps...

@toomim
Copy link
Member Author

toomim commented Aug 23, 2023

This is a wonderful list @CxRes! Thank you! I am glad that you've put so much thought into this, and that we can now benefit from your insight and organized mind on the topic.

If I'm understanding correctly, this is essentially a list of questions that a protocol designer should answer in order to fully-specify a subscription/notifications protocol over any transport. If the designer has answered all these questions, I suspect that should be enough to fully specify the protocol!

@CxRes
Copy link

CxRes commented Aug 23, 2023

I would not say fully-specify, but these were the questions I came up with after I had made a proto-version of PREP. It should help mostly-specify a notifications protocol.

One of the benefits of putting the list out (selfishly) is that others can identify blindspots!

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