Expand description
Network layer for distributed communication
Provides request distribution across multiple transport protocols:
- HTTP/2 for standard deployments
- TCP with length-prefixed protocol for high-performance scenarios
- NATS for legacy/messaging-based deployments
Modules§
- codec
- Codec Module
- egress
- ingress
- manager
- Network Manager - Single Source of Truth for Network Configuration
- tcp
- TCP Transport Module
Structs§
- Connection
Info - Connection Info is encoded as JSON and then again serialized has part of the Transport
Layer. The double serialization is not performance critical as it is only done once per
connection. The primary reason storing the ConnecitonInfo has a JSON string is for type
erasure. The Transport Layer will check the
ConnectionInfo::transporttype and then route it to the appropriate instance of the Transport, which will then deserialize theConnectionInfo::infofield to its internal connection info object. - Egress
- Ingress
- Network
Stream Wrapper - TODO: Detect end-of-stream using Server-Sent Events (SSE). This will be removed.
- Pending
Connections - After registering a stream, the
PendingConnectionsobject is returned to the caller. This object can be used to await the connection to be established. - Registered
Stream - The
RegisteredStreamobject is acquired from aStreamProviderand is used to provide an awaitable receiver which will theTwhich is either a stream writer for a request stream or a stream reader for a response stream. - Response
Stream Prologue - This is the first message in a
ResponseStream. This is not a message that gets process by the general pipeline, but is a control message that is awaited before theAsyncEngine::generatemethod is allowed to return. - Stream
Options - When registering a new TransportStream on the server, the caller specifies if the stream is a sender, receiver or both.
- Stream
Options Builder - Builder for
StreamOptions. - Stream
Receiver - Stream
Sender
Enums§
- Control
Message - Stream
Options Builder Error - Error type for StreamOptionsBuilder
- Stream
Type
Constants§
Traits§
- Codable
- Push
Work Handler - Response
Service - A
ResponseServiceimplements a services in which a context a specific subject with will be associated with a stream of responses. - Work
Queue Consumer WorkQueueConsumeris a generic interface for a work queue that can be used to send and receive