Queue adapter interface for queue-agnostic operations.
Implement this interface to create drivers for specific message brokers. The Queue class wraps adapters with Task/Stream semantics.
For connection lifecycle management, use QueueConnector which produces adapters. The adapter's close() method releases the connection (e.g., back to a pool) rather than terminating it — termination is the connector's responsibility.