I am concerned here about digital data streams and how they flow thru hardware systems designed to carry them. Here are several sorts of hardware designed for streams:
A coaxial cable
moves analog data with constant delay. Coaxial cable plays only a submerged role in our ideas here.
Systolic array of registers
likewise provides constant delay, presuming that there is a constant clock.
FIFO buffers
provide variable latency and limited capacity.
DMA
interfaces between RAM and some sort of hardware stream. It may obey some sort of program in RAM to describe fancy patterns or RAM addresses to occupy successive elements of the stream.
Some streams include counterflow signals to limit incoming data. We call this ‘backpressure’ here; elsewhere it is called ‘flow control’.