Comments (7)
Currently there are no means to handle back-pressure.
I'm aware of a bunch of different strategies to handle back-pressure. Could you be more specific about what exactly you're looking for? Are there any of the Rx back-pressure techniques that solve your use case (to be honest I'm not particularly impressed by those, but many of them would be easy to implement in Flyd)?
from flyd.
I'm working with database change feeds and my use case is that sometimes the processing of change takes time.
Previously, I used Highland.js to handle it because it allows me to pause the change feed until my processing is done.
from flyd.
So if I understand you want a stream based on some function producer
and you want the result of that stream consumed by another slower function consumer
. You want the library to automatically stop calling producer
when consumer
can't take the pressure.
What do you expect to happen if producer
has two dependents and only one of them are slow?
Also, I see that you've asked a similar question on Bacon a while back. Is this something you're asking out of curiosity or is it something that would actually make Flyd useful to you?
from flyd.
So if I understand you want a stream based on some function producer and you want the result of that stream consumed by another slower function consumer. You want the library to automatically stop calling producer when consumer can't take the pressure.
Yes this is my use case.
What do you expect to happen if producer has two dependents and only one of them are slow?
For now I just need the producer to be paused when at least one consumer is slow.
Maybe after we can think of a buffering system so that fast consumer can continue to process a little while before everything is paused.
Also, I see that you've asked a similar question on Bacon a while back. Is this something you're asking out of curiosity or is it something that would actually make Flyd useful to you?
I really like the style of Flyd. I found bacon.js good but very oriented toward UI management.
I also tested RxJS which is a bit complicated.
I'm using js-csp right now but i'm still looking for a more high-level FRP library :)
from flyd.
Ok. That sounds good :) I think js-csp is a sane choice. But I think FRP is a higher and more powerful abstraction.
I think it would really help me if we could circle in on some pseudo code that would work for you.
This is just from the top of my head:
var s = pauseableStream(function(emitCb, doneCb) {
// do something
emitCb(something);
});
And the function passed to pauseableStream
would be called as fast as possible as long is it listeners can keep up.
But the above is probably horrible. I'll have to look at how other libraries implements this.
from flyd.
Thanks for your answer.
You can take a look at Highland.js.
from flyd.
You can take a look at Highland.js.
I don't see much documentation about how it actually handles back-pressure. And no description about how to create a pauseable source from something that's not a Node Stream.
from flyd.
Related Issues (20)
- add more dependency for existing combine HOT 7
- Merge stream delay HOT 6
- add package.module
- Drag 'n Drop example is broken HOT 2
- Compare previous state with current state HOT 14
- Feature Request - Supply metadata for a combined stream HOT 2
- Help to build control flow func HOT 3
- Do you think this Promise -> Stream conversion is a right alternative way? HOT 6
- Wrong chain + setImmediate behavior HOT 1
- Benchmark against Most.js HOT 3
- Can flyd streams be made lazy ? HOT 9
- HELP: Trouble reading api documentation HOT 1
- Enhancement: Add Readonly-Streams (at least in Typings) HOT 3
- What's the motivation for ending a stream? HOT 3
- question on serialize stream
- from Node stream HOT 2
- Question: Required (code) complexity for higher-order streams HOT 10
- Support multiple operators for Pipe HOT 4
- [Help Needed] CombineLatest in the style of RxJs HOT 17
- Switch Latest without Ramda Dependency HOT 6
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 flyd.