Inlet Reference
Overview
Inlet is the Mississippi composition and source-generation layer. For the relationship between domain metadata, generated types, and host registrations, see Generated Application Contracts.
Applies To
Mississippi.Inlet.AbstractionsMississippi.Inlet.ClientMississippi.Inlet.GatewayMississippi.Inlet.Runtime
Verified Client Registration Surface
These client-side Inlet extensions compose on IReservoirBuilder. Full Mississippi client apps reach them through ClientBuilder.Reservoir(...).
| Method | Receiver | Purpose |
|---|---|---|
AddInletClient() | IReservoirBuilder | Register the client projection registry, ProjectionsFeatureState, IInletStore, and IProjectionUpdateNotifier |
AddProjectionPath<T>(path) | IReservoirBuilder | Add an explicit projection-path mapping |
AddInletBlazor() | IReservoirBuilder | Add the Blazor-specific registration extension point |
AddInletBlazorSignalR(...) | IReservoirBuilder | Configure SignalR-driven projection refresh |
AddSignalRConnectionFeature() | IReservoirBuilder | Register the SignalR connection state feature |
Source code:
InletBlazorSignalRBuilder
AddInletBlazorSignalR(...) configures a dedicated InletBlazorSignalRBuilder.
Configure it inside that callback. Once its registrations are built, further configuration or another build attempt throws InvalidOperationException; a read-only parent service collection also prevents configuration. This keeps deferred projection factories bound to the configuration that was registered.
| Member | Purpose |
|---|---|
AddProjectionFetcher<TFetcher>() | Use a custom IProjectionFetcher implementation |
ScanProjectionDtos(params Assembly[] assemblies) | Enable automatic projection DTO discovery and the auto fetcher |
WithHubPath(hubPath) | Set the SignalR hub path |
WithRoutePrefix(prefix) | Set the HTTP projection route prefix used by the auto fetcher |
AddInletBlazorSignalR(...) also adds the SignalR connection feature automatically during Build().
Source code:
Generated Client Method Shapes
The current Inlet client generators emit builder-based client registrations.
| Generator | Generated method shape | Receiver |
|---|---|---|
| Command client generator | Add{Aggregate}AggregateFeature() | IReservoirBuilder |
| Saga client generator | Add{Saga}SagaFeature() | IReservoirBuilder |
| Projection client generator | AddProjectionsFeature() | IReservoirBuilder |
| Domain client generator | Add{Domain}Client() | ClientBuilder |
Source code:
- CommandClientRegistrationGenerator.cs
- SagaClientRegistrationGenerator.cs
- ProjectionClientRegistrationGenerator.cs
- DomainClientRegistrationGenerator.cs
Verified Ownership Boundary
- Shared abstractions for projection paths and related metadata
- Client support for projection state and subscriptions
- Gateway support for generated APIs and SignalR delivery
- Runtime support for discovery and generated registrations
- Source generators that align those layers
Related But Separate Areas
- Aqueduct owns the real-time backplane.
- Reservoir owns the client-state model.
- Domain Modeling owns domain behavior.
Defaults And Constraints
This reference covers the verified subsystem boundary and the current client-side builder surface. Inlet client registrations assume a Reservoir builder exists; full Mississippi client apps create that builder by starting with UseMississippi(...) and then using Reservoir(...).
Failure Behavior
Client terminal attachment uses BuilderValidationException with stable diagnostic codes and remediation text. See Client Composition for the attachment contract and failure behavior.
For generator and runtime registration failure behavior, refer to the Inlet Operations page. Generator misalignment typically surfaces at compile time.
Summary
Use this page as the current active reference for Inlet's builder-based client registrations and the generated client method shapes that compose through ClientBuilder and IReservoirBuilder.
Next Steps
- Read Inlet Concepts.
- Read How To Compose Inlet In Mississippi Client Apps for startup composition guidance.
- Use the Spring Sample to see Inlet composition patterns in practice.