Comments (2)
@indexzero For simplicity we wanted to implement a subset of HTTP for our proxying need.
We have an internal HTTP framework that does not support streaming. It was easier to verify correctness if we just parsed the entire HTTP request.
We will actually deprecate proxying HTTP over ringpop+tchannel in the future and instead support forwarding tchannel messages over ringpop.
There are other technical reasons for body parsing. Our body parsing library has an internal cache. If you are trying to shared an incoming HTTP request over ringpop and need to read the body to compute the shard key, you would have to parse it before passing it to ringpop. This means ringpop either needs to be given the body to send or use a body parsing library with a build in cache. We choose the latter.
from ringpop-node.
Thanks @Raynos that makes a lot of sense. I saw the cache in body
when I was reading that code too.
from ringpop-node.
Related Issues (20)
- add internal event tracing capabilities HOT 1
- cluster of 2 can startup with 1 of 2 nodes in perpetual full-sync
- Prevent cross pollination of datacenter rings
- Integrate process-reporter
- Persistent full-syncs
- checksum not recalculated when 2-node ring loses 1 member
- New nodes joining (big) clusters cause more traffic in ping responses than needed
- hashring replica point concatenation can create slightly imbalanced rings in particular circumstances HOT 1
- Node v4 (and v5) support HOT 9
- Improve stats during partition healing
- Bootstrap can occur without listen
- Facing issue with npm install in ringpop-node HOT 5
- npm install ringpop build error HOT 3
- ringpop install issue HOT 3
- Make sure incarnation number is increased when bumped
- Catching handleOrProxy errors when request is sent to node that has failed.
- Don't use middlewares on `/proxy/req`
- Start the cluster with nodes offline HOT 2
- Is this an actively maintained project? HOT 2
- Installation issue with Node 10 - 13
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 ringpop-node.