Comments (3)
It seems I got into still water..
from akka-stream-contrib.
So much things to do and so little time to do it in I'm afraid, and reviews do take a lot of time, so I can't give you any estimate on when we'll get to review it, sorry!
My gut feeling is that it is quite intricate/complex machinery/API for something we don't hear much complaints about/see many problems with. I have only very quickly skimmed the PR though.
In general, for future contributions it may help to start out with a discussion of the problem as an issue first before making a more advanced PR like this.
from akka-stream-contrib.
Thank you very much for your answer.
I'm writing a server on Akka Streams, which has several tens of thousands of lines of source code. All server components are exclusively components of the Graph Stage. Dozens of static components are materialized into a single complex graph. For creating/removing and interacting with temporary components, I used own Dynamic Flow.
Combining all the components into a single complex graph, I got all the benefits of Akka Streams. At the same time, there was a problem of convenient back-pressure monitoring. Using manual pull/grab/push control within each Graph Stage, it's hard to avoid mistakes, but it's easy to complicate the code. And if consider that the use of Akka Streams does not exclude a problem like deadlock, revealing the potential cause of such a situation in the absence of a descriptive part of the back-pressure control becomes very difficult task.
Therefore, there was an idea of creating a higher level GraphStageLogic, the use of which would allow:
- get rid of the use of low-level pull/grab/push
- сoncisely describe the back-pressure policy within Graph Stage
- define buffers of the outlets with arbitrary OverflowStrategy
- handle an element from the inlet when all the outlets to which writing can be made will be available
- handle the event from the timer when all the outlets into which the writing can be made will be available
All these tasks are solved by the LinkedLogics/TimerLinkedLogics components, which has been successfully applied in my system for more than a year.
I think that the use of my LinkedLogics/TimerLinkedLogics with DynamicFlow components will allow many developers to completely abandon the direct use of Actors and switch to full-featured use of Akka Streams.
I will be glad for the further discussion.
from akka-stream-contrib.
Related Issues (20)
- Make the valve state inspection always complete
- Release 0.9 HOT 1
- IntervalBasedRateLimiter should limit rate of messages when frequency is very high (50 000 elements per 1 000ms) failed: 4 was not equal to 3
- FileTailSource and DirectoryChanges have moved to Alpakka HOT 1
- replace scala.Either in PartitionWith Java API HOT 3
- Any interest in integrating actor into a Flow though a GraphStage? HOT 3
- Add maxNumber and maxTime to AccumulateWhileUnchanged
- Publish artifacts for scala 2.13 HOT 2
- Publishing from Travis fails
- Remove unrelated tools
- PassThroughFlow limits the rate of the inner processingFlow HOT 5
- Remove PassThroughFlow which is not superseded by FlowWithContext
- Introduce Token Throttle HOT 3
- TokenThrottle can fail to complete and doesn't consistently pre-fetch tokens
- Publish API documentation to doc.akka.io HOT 7
- Support for sorting fan-in shape with more than two upstreams
- Migrate from travis.org to travis.com HOT 1
- Shared valve switch HOT 1
- Why no more releases? 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 akka-stream-contrib.