Back to Stackexchange Redis

SER009

docs/exp/SER009.md

3.1.131.5 KB
Original Source

RESPite.Transports.DuplexTransport (and TransportReceiver) are an experimental transport abstraction: staged-and-flushed outbound (the transport itself is the IBufferWriter<byte>), push inbound with transport-owned memory, and an explicit batch-end notification. They exist to let alternative IO engines plug in beneath the library (see Tunnel.ConnectTransportAsync) without being constrained to Stream or pipe semantics.

This API is not intended for external use at this time. It exists to support internal experimentation with alternative transports, and is public only because a seam has to be public to be implemented. Specifically:

  1. No stability whatsoever is implied. The shape may gain members, change semantics, be renamed, move assembly or namespace, or be removed outright — between any two versions, including patches, with no breaking-change ceremony, no deprecation period, and no migration notes.
  2. Do not implement or consume it in code you ship. If you build on it anyway, you are accepting that any update may break you without warning, and issues asking for compatibility or support for it will be closed.
  3. The [Experimental] diagnostic (SER009) is the enforcement mechanism: suppressing it is you signing up to the above.

If a transport seam useful beyond this experiment emerges, it will be stabilised deliberately — with its own announcement and a removed [Experimental] marker — rather than by this surface quietly hardening into a contract.