I am investigating why some systems implement application-level back-pressure given that TCP provides native flow control.
I was reading, in particular, akka-streams and (an higher level discussion) reactive streams.
Is it only to abstract out the idea of asynchronous communication out of the network and out of the TCP protocol?
Other, more precise, questions:
If the application (say akka-streams app) ends up communicating over TCP, will it fall back to TCP's native back-pressure?
Does reactive streams implement application-level back-pressure on top of TCP by simply leaving TCP handle it?
Any help and pointer would be appreciated! Thanks :)