there are two fundamental types of streams source and sink. There are two composite types of streams through (aka transform) and duplex
A through stream is a sink stream that reads what goes into the source. a duplex stream is a pair of {source, sink}
streams.
Source streams have two methods.
A source (readable stream) is an async function that may be called repeatedly until it returns a terminal state. You must not call the read function until the previous call has returned, except for a call to abort the stream. pull-streams have back pressure, but it implicit instead of sending an explicit back pressure signal. If a source