Description
Product: Tarantool
Since: 2.10.0-beta1
Root document: https://www.tarantool.io/en/doc/latest/dev_guide/internals/box_protocol/
SME: @ EvgenyMekhanik
Details
A distinctive feature of streams is that all requests in them
are processed sequentially. The execution of the next request
in stream will not start until the previous one is completed.
To separate requests belonging to and not belonging to streams
we use stream ID field in binary iproto protocol: requests with
non-zero stream ID belongs to some stream. Stream ID is unique
within the connection and indicates which stream the request
belongs to. For streams from different connections, the IDs may
be the same.
There is no need to send special command to start stream: you
just only need to send request with non zero stream ID, server
creates stream if it is not exist and process this request in it.
Stream ID is generated on the client size. There is no stream ID
in responses: since the client generates a stream ID, and the client
knows for what request come this response, there is no need for this.
Related to #2308