src/KurrentDB.Projections.Management/README.md
Top-level orchestration layer for the projections subsystem.
ManagedProjection state machine.ProjectionsSubsystem manages startup/shutdown and leader election awareness (projections only run on the leader node).ProjectionManager maintains the registry of all active projections and dispatches commands to them.ProjectionCoreCoordinator manages multiple projection worker threads; ProjectionWorkerNode sets up individual workers.ProcessingStrategySelector chooses between V1 and V2 engines per projection.Prelude/) over HTTP for the web editor.| Class | Purpose |
|---|---|
ProjectionsSubsystem | Plugin/subsystem entry point, lifecycle, metrics |
ProjectionManager | Central request dispatcher and projection registry |
ManagedProjection | Wraps an individual projection with a state machine |
ProjectionCoreCoordinator | Coordinates multiple projection core workers |
ProjectionCoreService | Per-worker projection processing service |
ProcessingStrategySelector | Selects V1 or V2 engine per projection |
ProjectionManagement (gRPC) | gRPC service implementation |
ProjectionsController (HTTP) | HTTP controller for REST/legacy clients |
Management ──→ V1 ──→ Shared
│ ↑
├──→ V2 ────────────┘
└──→ JavaScript
Management directly references V1, V2, and JavaScript. V1, V2, and JavaScript have no cross-dependencies — each depends only on Shared.