Files
git.stella-ops.org/docs/features/unchecked/router/inmemory-transport-plugin.md

1.9 KiB

InMemory Transport Plugin

Module

Router

Status

IMPLEMENTED

Description

In-process transport using System.Threading.Channels for development and testing. Implements InMemoryTransportServer, InMemoryTransportClient, InMemoryConnectionRegistry, and InMemoryChannel with zero-copy semantics.

Implementation Details

  • Modules: src/Router/__Libraries/StellaOps.Router.Transport.InMemory/
  • Key Classes:
    • InMemoryTransportPlugin (src/Router/__Libraries/StellaOps.Router.Transport.InMemory/InMemoryTransportPlugin.cs) - plugin registration for in-memory transport
    • InMemoryTransportServer (src/Router/__Libraries/StellaOps.Router.Transport.InMemory/InMemoryTransportServer.cs) - in-process transport server using System.Threading.Channels
    • InMemoryTransportClient (src/Router/__Libraries/StellaOps.Router.Transport.InMemory/InMemoryTransportClient.cs) - in-process transport client with zero-copy semantics
    • InMemoryConnectionRegistry (src/Router/__Libraries/StellaOps.Router.Transport.InMemory/InMemoryConnectionRegistry.cs) - tracks in-memory connections between server and clients
    • InMemoryChannel (src/Router/__Libraries/StellaOps.Router.Transport.InMemory/InMemoryChannel.cs) - channel-based communication pipe
  • Interfaces: IRouterTransportPlugin, ITransportServer, ITransportClient, IMicroserviceTransport
  • Source: batch_51/file_17.md

E2E Test Plan

  • Register InMemoryTransportPlugin and verify a gateway and microservice can communicate in-process
  • Send a request through InMemoryTransportClient and verify InMemoryTransportServer receives and processes it
  • Verify zero-copy semantics: confirm no additional memory allocations for frame payload transfer
  • Verify InMemoryConnectionRegistry tracks active connections
  • Verify concurrent request handling: send multiple requests in parallel and confirm all complete