Code Monkey home page Code Monkey logo

Comments (7)

OlegDokuka avatar OlegDokuka commented on September 27, 2024 1

Just FYI, it is not mine, right now I'm responsible for the process but this is a collective decision.

All the stakeholders from Facebook, Netflix and Pivotal are aware of what is going on. You may be sure, as before it is a joint effort.

why are there data layout definitions in the specification for byte streams protocol?

I'm not quite sure what are you talking about. The mentioned checklist includes version 1.0 for the core spec and 0.0 for extension spec. As it was before, the extension specifications are living independently and do not impact anyhow the core spec.

bytestreams protocol

It is working like this as before, the extensions are optional and work in case of Composite Metadata Mimetype

headers definitions - why can't I just use HPACK packed headers

As before, the header metadata format can be defined at the connection setup phase so there are no constraints on metadata layout

who endowed you with changing important parts of the specification in such assertive tone?

If you have any concerns, please, feel free to get in touch with any of Reactive Foundation members

from rsocket.

mostroverkhov avatar mostroverkhov commented on September 27, 2024

Why protocol intended for efficient transmission of byte streams would be concerned about data layout? Would those extensions make more sense for RSocket-RPC than for RSocket itself? Without requests leasing there is no way to limit requests concurrency - queues will fill up thus making reactive streams semantics of single stream pointless - I have custom implementation of that based on https://github.com/Netflix/concurrency-limits.

from rsocket.

mostroverkhov avatar mostroverkhov commented on September 27, 2024

With proposed feature set RSocket looks like http2 streams twin brother - why have another protocol at all? Wondering what were the parties involved when this list was defined.

from rsocket.

OlegDokuka avatar OlegDokuka commented on September 27, 2024

I totally share your concerns about removing Leasing spec from the core spec.

The plan is to make a release and in order to make it earlier, we have to remove the current state of leasing since it is non-finalized. It is going to be returned after revising. Please see #273 for the reasoning on why it's removing from the spec is happening right now.

Any ideas on how we can move Leasing spec to the extensions are more than appreciated.

from rsocket.

mostroverkhov avatar mostroverkhov commented on September 27, 2024

Thanks for sharing your vision of the specification - but (without belittling your expertise on a matter) the original one was designed as joint effort of Netflix, Facebook and Todd Montgomery ( person behind Aeron) in an open discussion fashion, and there were no issues with current specification so far. And I am sure Robert can explain message count with Reactive Streams vs byte count leasing impedance in #273, the question is still open:

  • why are there data layout definitions in specification for byte streams protocol? They are just glorified headers definitions - why cant I just use HPACK packed headers? Why spec every header if there are well-known (and custom) metadata types?
  • who endowed you with changing important parts of the specification in such assertive tone?

from rsocket.

mostroverkhov avatar mostroverkhov commented on September 27, 2024

collective decision

This means specification changes and road map switched from public discussion through issues on this project - to private discussion and decision making by small circle of companies listed on https://reactive.foundation/members/ ? In particular, group decided privately that feature set outlined at http://rsocket.io/docs/Implementations is superseded by above list? Foundation governance is significant change, and should have been reflected on rsocket.io.

get in touch with any of Reactive Foundation members

I'd like to hear members opinion on

  • what are the options for rate limiting RSockets once leasing is removed; whether demand limiting with reactive streams is useful if # of requests is unbounded
  • presence of routing and tracing extensions in specification mainly concerned with byte streams (there are no mentions of RPC in spec);
  • presence of authentication extension - with Http this is one of many headers, chances are high http2 will be used as transport for connections outside of datacenter => more headers should be mapped to RSocket stream - may be prefer set of key-value pairs instead? (still only useful in RPC context)

from rsocket.

OlegDokuka avatar OlegDokuka commented on September 27, 2024

@mostroverkhov I'm not going to go in any discussion here anymore since this issue alive here to track the TODO list on the final release.

RSocket Extensions are optional and the concrete of extensions was defined at the very beginning of the specification development. Right now, it is expanding due to users' requirements.

The spec development process is going on as before. Reactive Foundation is an expert group that leads that project, but as before, community input is equally valuable.

Removing / Rethinking of leasing will be going as a PR process, so you may share your thoughts once the relevant issue / PR is going to appear.

If you have any questions/suggestions, there is an issue process, so feel free to open one.

from rsocket.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.