Comments (2)
Absolutely it is a tricky decision to make!
My reservations around using deadline are the following:
- As you specified, using time means that we need to take care of propagation delays.
- The client code becomes complex as it has to be considerate of time before making a request. So, it will manifest in two ways:
- Check for current time and hence deadline before each request.
- Or have a scheduled timer for each connection from the client that resets the request quota for that duration.
Both of the above sounds too heavy a burden to force from the protocol IMO.
I do agree that the lease expiry is a nice side-effect for an overloaded server. An argument against that could be that for a well behaved client and properly implemented flow control from the server, hitting the wall (overloaded) would mean that the server over-subscribed for requests.
Overall, I do not have a concrete reason for either ways but using time does make me nervous!
from rsocket.
Just for the record, we ended up choosing to keep a TTL in the lease message.
It has the nice property of automatically applying backpressure when a server is overloaded (it doesn't need to do any extra work to shed load away)
from rsocket.
Related Issues (20)
- [Release] Checklist HOT 7
- RSocket with Clients Mutiplatforms HOT 6
- Cannot dispose server HOT 2
- Fragmentation for METADATA_PUSH HOT 4
- NET::ERR_CERT_COMMON_NAME_INVALID HOT 6
- [Needs Clarification] Frame Size Limit
- Weaker frame ordering in Connection-Oriented communication HOT 24
- Dart/Flutter support. HOT 6
- Re-vice spec format to be aligned with RFC format
- The successor of websocket is being worked on HOT 5
- Jitter for KEEP ALIVE frames HOT 5
- RSocket has /will consider request-reponse as a default mode? HOT 2
- Signup link for community.reactive.foundation breaks on community.netifi.com redirect HOT 1
- Add Connection Setup frame to list of places where composite metadata can be applied
- Deploy rsocket-demo as demo.rsocket.io
- [Discussion] Does rsocket plan to be supported by cloud native components? HOT 3
- Propagate headers/metadata in RSocket HOT 1
- rsocket send duplicate requests (4) each "keepAlive" interval HOT 1
- Confusion on metadata length field
- MimeType of MESSAGE_RSOCKET_AUTHENTICATION does not work with JWTs HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rsocket.