Skip to content

Feature/experimental multi context support#145

Merged
george2006 merged 73 commits into
mainfrom
feature/experimental-multi-context-support
May 18, 2026
Merged

Feature/experimental multi context support#145
george2006 merged 73 commits into
mainfrom
feature/experimental-multi-context-support

Conversation

@george2006

Copy link
Copy Markdown
Owner

Summary

This PR introduces the experimental multi-context / context-lane model for TinyDispatcher.

The goal is to support modular monoliths where different modules can own different execution contexts, middleware, policies, handlers, and strongly typed dispatcher surfaces inside the same host application.

This is intended as the foundation for the upcoming 1.2.0-alpha.1 prerelease.

What changed

  • Adds context-lane support for multiple typed dispatcher pipelines in one application.
  • Allows module-owned contexts such as OrdersContext, PaymentsContext, AppContext, and NoOpContext.
  • Keeps host-owned final composition while allowing each lane to define its own context factory, middleware, policies, and handlers.
  • Updates source generation planning/composition around host lanes and referenced contributions.
  • Adds lane-aware pipeline map emission.
  • Adds a runnable multi-lane sample covering Orders, Payments, default AppContext, and NoOpContext lanes.
  • Expands unit test coverage around multi-context generation, validation, bootstrap extraction, and runtime dispatch.
  • Updates docs to clearly separate stable 1.1.x from experimental 1.2.0-alpha.*.

Release positioning

This feature is experimental and should be published as 1.2.0-alpha.1.

Stable users should remain on 1.1.x. The context-lane API may change before the stable 1.2.0 release.

Validation

  • dotnet test TinyDispatcher.sln -c Release
  • dotnet run --project samples\src\TinyDispatcher.Samples.MultiLaneDispatching\TinyDispatcher.Samples.MultiLaneDispatching.csproj -c Release
  • dotnet build samples\TinyDispatcher.Samples.sln -c Release --no-restore

@george2006 george2006 merged commit a38d42f into main May 18, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants