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

Remove references to unknown / missing "Braid-WebRTC" from http spec #95

Open
josephg opened this issue Feb 16, 2021 · 2 comments
Open

Comments

@josephg
Copy link
Contributor

josephg commented Feb 16, 2021

Spec says:

5.3.  A Serverless Chat Example
...
   Additionally, the Braid protocol can be
   expressed over peer-to-peer transports (e.g. Braid-WebRTC) to support
   a peer-to-peer synchronization without a server.  Braid-HTTP clients
   will be able to interoperate with Braid-WebRTC peers.  For example, a
   chat application might be served and synchronized on Braid-HTTP,
   while also establishing redundant peer-to-peer connections on
   Braid-WebRTC.  The server could then be shut down, and users of the
   chat app could continue to send messages to one another.

Its really jarring mentioning a separate, unspecified protocol (Braid-WebRTC) in this example. This reference is confusing as-is, because people will go looking for that spec!

Either the text should be clear about whats being proposed here. Eg:

  ... Future versions of this protocol may be expressed over
  peer-to-peer transports (e.g. WebRTC) to support synchronization
  without a server.

Or remove / change this example entirely.

@josephg josephg changed the title Remove references to "braid-webrtc" from http spec Remove references to unknown / missing "Braid-WebRTC" from http spec Feb 16, 2021
@toomim
Copy link
Member

toomim commented Feb 25, 2021

Yeah, we've implemented a braid webrtc transport in redwood, but the point of this paragraph isn't to get people using a common webrtc specification, but just to suggest that they could use additional network channels like webrtc as an example.

Would it be better if the text said this:

5.3.  A Serverless Chat Example
...
   Additionally, the Braid protocol can be expressed over peer-to-peer
   transports (e.g. WebRTC) to support a peer-to-peer synchronization
   without a server.  For example, a chat application might be served
   and synchronized on Braid-HTTP, while also establishing redundant
   peer-to-peer connections on WebRTC, and translating all Braid-HTTP
   messages over the WebRTC connections, and vice versa.  The server
   could then be shut down, and users of the chat app could continue to
   send messages to one another.

@josephg
Copy link
Contributor Author

josephg commented Mar 9, 2021

Thats a bit better, but I think it still doesn't address my main concern. My concern is that the spec doesn't specify how to embed braid in WebRTC, or how to use braid in a P2P context. This example implies that it has.

The question to ask about a good spec is, "with no supplementary material, could I read the spec and know how to write an implementation that can talk to any other implementation". The answer is "no" wrt WebRTC and P2P. (And if we want to describe how to do that, that description shouldn't be described as an example.

This is an island we want to reach, but the spec doesn't build a bridge to that island yet. We should either call that out explicitly ("Future versions of this protocol may...") or remove this text completely.

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