# StellaOps Router The StellaOps Router is the internal communication infrastructure that enables microservices to communicate through a central gateway. ## Overview The router provides: - **Gateway WebService** (`StellaOps.Gateway.WebService`): HTTP ingress service that routes requests to microservices - **Microservice SDK** (`StellaOps.Microservice`): SDK for building microservices that connect to the router - **Transport Plugins**: Multiple transport options (TCP, TLS, UDP, RabbitMQ, InMemory for testing) - **Claims-based Authorization**: Using `RequiringClaims` instead of role-based access ## Key Documents | Document | Purpose | |----------|---------| | [specs.md](./specs.md) | **Canonical specification** - READ FIRST | | [implplan.md](./implplan.md) | High-level implementation plan | | [SPRINT_INDEX.md](./SPRINT_INDEX.md) | Sprint overview and dependency graph | ## Solution Structure ``` StellaOps.Router.slnx ├── src/__Libraries/ │ ├── StellaOps.Router.Common/ # Shared types, enums, interfaces │ ├── StellaOps.Router.Config/ # Router configuration models │ ├── StellaOps.Microservice/ # Microservice SDK │ └── StellaOps.Microservice.SourceGen/ # Build-time endpoint discovery ├── src/Gateway/ │ └── StellaOps.Gateway.WebService/ # HTTP gateway service └── tests/ ├── StellaOps.Router.Common.Tests/ ├── StellaOps.Gateway.WebService.Tests/ └── StellaOps.Microservice.Tests/ ``` ## Building ```bash # Build the router solution dotnet build StellaOps.Router.slnx # Run tests dotnet test StellaOps.Router.slnx ``` ## Invariants (Non-Negotiable) From the specification, these are non-negotiable: - **Method + Path** is the endpoint identity - **Strict semver** for version matching - **Region from GatewayNodeConfig.Region** (never from headers/host) - **No HTTP transport** between gateway and microservices - **RequiringClaims** (not AllowedRoles) for authorization - **Opaque body handling** (router doesn't interpret payloads) ## Status Currently in development. See [SPRINT_INDEX.md](./SPRINT_INDEX.md) for implementation progress.