Generated by tools/maps/generate-extension-point-map.
Records Markdown catalog facts from EXTENSION_POINTS.md files. It does not validate catalog completeness.
- Catalog files discovered: 59
- Source catalogs discovered: 58
- Source catalogs indexed from root: 58
- Discovered source catalogs not linked from root index: 0
- Root-indexed catalogs missing on disk: 0
| Catalog | Owner project | Domain | Sections | Extension-point headings | Kind lines | Known implementation blocks | Root indexed |
|---|---|---|---|---|---|---|---|
| EXTENSION_POINTS.md | - | repo root | Two axes: override vs. extend Intra-domain vs. cross-domain contributions How to read the kinds The doc layering Per-domain catalogs |
Infrastructure Expressions HTTP API Agent and Identity Secrets Persistence Activities Workflows Legacy Diagnostics |
0 | root | |
| src/Elsa/Activities/ControlFlow/Do/EXTENSION_POINTS.md | Elsa.Activities.ControlFlow | Elsa.Activities | Cross-domain contributions | 0 | yes | ||
| src/Elsa/Activities/ControlFlow/For/EXTENSION_POINTS.md | Elsa.Activities.ControlFlow | Elsa.Activities | Cross-domain contributions Runtime extensions consumed |
0 | yes | ||
| src/Elsa/Activities/ControlFlow/ForEach/EXTENSION_POINTS.md | Elsa.Activities.ControlFlow | Elsa.Activities | Cross-domain contributions Runtime seam dependencies |
0 | yes | ||
| src/Elsa/Activities/ControlFlow/If/EXTENSION_POINTS.md | Elsa.Activities.ControlFlow | Elsa.Activities | Cross-domain contributions | 0 | yes | ||
| src/Elsa/Activities/ControlFlow/Parallel/EXTENSION_POINTS.md | Elsa.Activities.ControlFlow | Elsa.Activities | Consumed runtime extension points Cross-domain contributions |
0 | yes | ||
| src/Elsa/Activities/ControlFlow/Switch/EXTENSION_POINTS.md | Elsa.Activities.ControlFlow | Elsa.Activities | Cross-domain contributions | 0 | yes | ||
| src/Elsa/Activities/ControlFlow/While/EXTENSION_POINTS.md | Elsa.Activities.ControlFlow | Elsa.Activities | Cross-domain contributions | 0 | yes | ||
| src/Elsa/Activities/Design/Api/EXTENSION_POINTS.md | Elsa.Activities.Design.Api | Elsa.Activities | Replacement contracts Sources and reconciliation |
0 | yes | ||
| src/Elsa/Activities/Design/Persistence/EFCore/EXTENSION_POINTS.md | Elsa.Activities.Design.Persistence.EFCore | Elsa.Activities | Overridable contracts Entity persistence contributors |
IAddActivityDefinitionCommand (Core — Elsa.Activities.Design.Persistence.Core)IActivityDefinitionLookup (Core — Elsa.Activities.Design.Persistence.Core) |
0 | yes | |
| src/Elsa/Activities/Design/Persistence/Groundwork/EXTENSION_POINTS.md | Elsa.Activities.Design.Persistence.Groundwork | Elsa.Activities | Replacement contracts | 0 | yes | ||
| src/Elsa/Activities/Design/Reconciliation/Clr/EXTENSION_POINTS.md | Elsa.Activities.Design.Reconciliation.Clr | Elsa.Activities | Contributions to other domains Replaceable services (per §2.6.2) Options Events |
IActivityReconciliationSource (Core contract — Elsa.Activities.Design.Reconciliation.Core) |
0 | yes | |
| src/Elsa/Activities/Design/Reconciliation/EXTENSION_POINTS.md | Elsa.Activities.Design.Reconciliation | Elsa.Activities | Implementable contributor interfaces Events |
IActivityReconciliationSource (Feature contract — Elsa.Activities.Design.Reconciliation)OnActivityVersionsReconciling |
Source (returns reconciliation models — pull pattern). | 1 | yes |
| src/Elsa/Activities/Design/Reconciliation/Json/EXTENSION_POINTS.md | Elsa.Activities.Design.Reconciliation.Json | Elsa.Activities | Contributions to other domains Replaceable services (per §2.6.2) Options Events |
IActivityReconciliationSource (Core contract — Elsa.Activities.Design.Reconciliation.Core) |
0 | yes | |
| src/Elsa/Activities/Flowchart/EXTENSION_POINTS.md | Elsa.Activities.Flowchart | Elsa.Activities | Scoped execution seam Implementable contributor interfaces Activity-owned structure contracts Consumed runtime contracts Cross-domain contributions |
IFlowchartPolicy |
Contributor (policy decision provider) | 0 | yes |
| src/Elsa/Activities/Http/EXTENSION_POINTS.md | Elsa.Activities.Http | Elsa.Activities | Overridable contracts | SyncHttpResponseSink (scoped seam — Elsa.Activities.Http.Services) |
Registered AddScoped in ActivitiesHttpFeature; a request-scoped state holder (HttpContext? HttpContext, bool ResponseWritten, Populate(HttpContext), MarkResponseWritten()). |
0 | yes |
| src/Elsa/Activities/Runtime/EXTENSION_POINTS.md | Elsa.Activities.Runtime | Elsa.Activities | Implementable contributor interfaces Events |
WorkflowInvokeActivitySchedulerWorkHandler (Activities Runtime — Elsa.Activities.Runtime)WorkflowParentActivityCompletionSchedulerWorkHandler (Activities Runtime — Elsa.Activities.Runtime)ResumeTargetAttribute (Core — Elsa.Activities.Runtime.Core)TriggerActivityAttribute (Core — Elsa.Activities.Runtime.Core)IActivityConstructor<TDescriptor> (Core — Elsa.Activities.Runtime.Core)IActivityChildCompletionHandler (Core — Elsa.Activities.Runtime.Core)IActivityChildFaultHandler (Core — Elsa.Activities.Runtime.Core)OnActivityConstructorsInitializing |
Scheduler work contributor. Scheduler work contributor. Declaration surface (activity author contract). Declaration surface (activity author contract). Contribution (one constructor per descriptor type). Activity-owned continuation handler. Activity-owned continuation handler (fault side of IActivityChildCompletionHandler). |
3 | yes |
| src/Elsa/Activities/Sequence/EXTENSION_POINTS.md | Elsa.Activities.Sequence | Elsa.Activities | Cross-domain contributions | 0 | yes | ||
| src/Elsa/Agent/Core/EXTENSION_POINTS.md | Elsa.Agent.Core | Elsa.Agent | Overridable contracts Implementable contributor interfaces Provider bridge contracts |
IAgentSessionServiceIAgentPolicyEvaluatorIAgentContextCollectorIAgentContextSanitizerIAgentProposalServiceIAgentActionProposalExecutorIAgentStreamingServiceIAgentToolInvokerIAgentTurnRegistryIAgentTurnStateStoreIAgentFeedbackServiceIAgentAuditSinkIAgentAuditReaderIAgentProviderRegistryIAgentContextProviderIAgentCapabilityProviderIAgentToolIAgentProviderIAgentHarness |
0 | yes | |
| src/Elsa/Agent/Workflows/EXTENSION_POINTS.md | Elsa.Agent.Workflows | Elsa.Agent | Contributions to other domains Overridable contracts |
IAgentCapabilityProvider (Agent core contract — Elsa.Agent.Core)IAgentContextProvider (Agent core contract — Elsa.Agent.Core)IWorkflowAgentContextProviderIWorkflowRevisionProviderIWorkflowChangePermissionEvaluatorIWorkflowChangeProposalService |
0 | yes | |
| src/Elsa/Api/Capabilities/EXTENSION_POINTS.md | Elsa.Api.Capabilities | Elsa.Api | Contributor seam Replaceable service Static declarations References |
IApiCapabilitySourceIApiCapabilityCatalog |
typed Source, add-don't-replace. | 0 | yes |
| src/Elsa/Api/FastEndpoints/EXTENSION_POINTS.md | Elsa.Api.FastEndpoints | Elsa.Api | Feature-inheritance point Secure-by-construction endpoint base classes Implementable contributor interfaces Per-shell security feature |
FastEndpointsFeatureBaseIFastEndpointsConfigurator (CShells contract)IFastEndpointFilterApiSecurityFeature / ApiSecurityOptions |
Feature inheritance point (abstract base implementing CShells IFastEndpointsShellFeature).Contributor (fan-in; every registered configurator is applied when the shell maps its FastEndpoints). Contributor (fan-in; excludes endpoints from a shell's mapped set). Shell feature with bindable options ( AllowAnonymous, default false; ShellName is populated from the shell settings). |
0 | yes |
| src/Elsa/Caching/Memory/EXTENSION_POINTS.md | Elsa.Caching.Memory | Elsa.Caching | Overridable contracts | ICacheManager (Core — Elsa.Caching.Core)IChangeTokenSignaler (Core — Elsa.Caching.Core)IChangeTokenSignalInvoker (Core — Elsa.Caching.Core) |
0 | yes | |
| src/Elsa/Diagnostics/OpenTelemetry/EXTENSION_POINTS.md | Elsa.Diagnostics.OpenTelemetry | Elsa.Diagnostics | Overridable contracts Ingestion & transport (not extension points) Deferred Notes |
IOpenTelemetryStore (Core — Elsa.Diagnostics.OpenTelemetry.Core)IOpenTelemetryLiveFeed (Core — Elsa.Diagnostics.OpenTelemetry.Core)IOpenTelemetryIngestor (Core — Elsa.Diagnostics.OpenTelemetry.Core)IOpenTelemetryRedactor (Core — Elsa.Diagnostics.OpenTelemetry.Core)IOpenTelemetrySourceRegistry (Core — Elsa.Diagnostics.OpenTelemetry.Core)IOpenTelemetryProvider (Core — Elsa.Diagnostics.OpenTelemetry.Core)ICollectorConfigurationProvider (Core — Elsa.Diagnostics.OpenTelemetry.Core) |
0 | yes | |
| src/Elsa/Diagnostics/Persistence/EXTENSION_POINTS.md | Elsa.Diagnostics.Persistence | Elsa.Diagnostics | Overridable contracts Implementable contributor interfaces Events Production bridges and registration |
IDiagnosticsDrainTarget<TItem, TResult> (Feature contract — Elsa.Diagnostics.Persistence)IDiagnosticsPersistenceObserver (Feature contract — Elsa.Diagnostics.Persistence) |
Adapter / Bridge; single Replacement. Adapter / Bridge; single Replacement. |
0 | yes |
| src/Elsa/Diagnostics/StructuredLogs/EXTENSION_POINTS.md | Elsa.Diagnostics.StructuredLogs | Elsa.Diagnostics | Overridable contracts Persistence Notes |
IStructuredLogStore (Core — Elsa.Diagnostics.StructuredLogs.Core)IStructuredLogLiveFeed (Core — Elsa.Diagnostics.StructuredLogs.Core)IStructuredLogLivePublisher (Core — Elsa.Diagnostics.StructuredLogs.Core)IStructuredLogSink (Core — Elsa.Diagnostics.StructuredLogs.Core)IStructuredLogSourceProvider (Core — Elsa.Diagnostics.StructuredLogs.Core)Groundwork diagnostic records Temporary EF Core compatibility override |
0 | yes | |
| src/Elsa/Events/EXTENSION_POINTS.md | Elsa.Events | Elsa.Events | Implementable contributor interfaces Publishing strategies |
IEventHandler<T> (Core — Elsa.Events.Core) where T : IEventIEvent (Core — Elsa.Events.Core)IEventMiddleware (Core — Elsa.Events.Core) |
Contributor (event subscriber — handles a specific event type). Marker interface — implement to define an event type. Typically a sealed record.Contributor (event pipeline middleware). Composes the event dispatch pipeline. |
1 | yes |
| src/Elsa/Expressions/Api/EXTENSION_POINTS.md | Elsa.Expressions.Api | Elsa.Expressions | Descriptor Sources | 0 | yes | ||
| src/Elsa/Expressions/EXTENSION_POINTS.md | Elsa.Expressions | Elsa.Expressions | Implementable contributor interfaces | IExpressionHandler (Core — Elsa.Expressions.Core)IExpressionDescriptorProvider (Core — Elsa.Expressions.Core)IVariableTypeDescriptorProvider (Core — Elsa.Expressions.Core)IScopedVariableProvider (Core — Elsa.Expressions.Core) |
Contributor (handles evaluation for a specific expression type). Source (returns a set of expression descriptors — pull pattern). Source (returns a set of selectable argument-type descriptors — pull pattern). Optional capability implemented by an IExpressionExecutionContext (not DI-registered). |
3 | yes |
| src/Elsa/Expressions/JavaScript/EXTENSION_POINTS.md | Elsa.Expressions.JavaScript | Elsa.Expressions | Implementable contributor interfaces Events |
IScriptPreProcessor (Core — Elsa.Expressions.JavaScript.Core)IScriptPostProcessor (Core — Elsa.Expressions.JavaScript.Core)OnEvaluatingScript OnScriptEvaluated |
Contributor (receives execution context and acts — push pattern). Contributor (receives execution context after the script has run and acts — push pattern). |
2 | yes |
| src/Elsa/Expressions/JavaScript/Rendering/EXTENSION_POINTS.md | Elsa.Expressions.JavaScript.Rendering | Elsa.Expressions | Implementable contributor interfaces Events |
IJavaScriptDeclarationContributor (Core — Elsa.Expressions.JavaScript.Rendering.Core)OnDeclarationsDocumentGenerating |
Contributor (receives a contribution context and acts — push pattern). | 1 | yes |
| src/Elsa/Expressions/Liquid/EXTENSION_POINTS.md | Elsa.Expressions.Liquid | Elsa.Expressions | Events | RenderingLiquidTemplate |
0 | yes | |
| src/Elsa/Foundation/Identity/Abstractions/EXTENSION_POINTS.md | Elsa.Foundation.Identity.Abstractions | Elsa.Foundation | Overridable contracts Implementable contributor interfaces Events |
IAuthenticationProviderModuleIPermissionContributorIPermissionResourceHandlerISecurityDefaultGuardAuthEvent |
Contributor (registered provider module; one implementation per configured provider family/profile). Contributor (feature-owned permission contribution to the shared catalog). Contributor (resource-specific authorization decision hook). Validator (action-named contributor that returns startup/configuration violations). Audit event abstraction (record emitted through IAuthEventSink; no concrete dispatcher is selected in this PR). |
0 | yes |
| src/Elsa/Foundation/Identity/Persistence/Groundwork/EXTENSION_POINTS.md | Elsa.Foundation.Identity.Persistence.Groundwork | Elsa.Foundation | Provider selection — host composition Persisted document kinds Schema evolution |
0 | yes | ||
| src/Elsa/Http/EXTENSION_POINTS.md | Elsa.Http | Elsa.Http | Implementable contributor interfaces Replaceable single-implementation contracts HTTP endpoint behaviour contracts (Core — Elsa.Http.Core) |
IDownloadableContentHandler (Core — Elsa.Http.Core)IHttpRequestBodyParser (Core — Elsa.Http.Core) |
Contributor (handles a specific content type for download — priority-ordered multi-implementation). Replacement (single implementation, resolved by GetService; override by registering your own before HttpFeature). |
1 | yes |
| src/Elsa/Locking/FileSystem/EXTENSION_POINTS.md | Elsa.Locking.FileSystem | Elsa.Locking | Overridable contracts | IDistributedLockProvider (Core — Elsa.Locking.Core) |
0 | yes | |
| src/Elsa/Mediator/EXTENSION_POINTS.md | Elsa.Mediator | Elsa.Mediator | Implementable contributor interfaces Implementable pipeline middleware |
ICommandHandler<TCommand> / ICommandHandler<TCommand, TResult> (Core — Elsa.Mediator.Core)IRequestHandler<TRequest, TResponse> (Core — Elsa.Mediator.Core)IMessageMiddleware (Core — Elsa.Mediator.Core) |
Contributor (handles a specific command type — one handler per command). Contributor (handles a specific request type — one handler per request, returns a response). Pipeline middleware for the unified command/request dispatch pipeline (replaces the former separate ICommandMiddleware / IRequestMiddleware). |
2 | yes |
| src/Elsa/Modularity/Api/EXTENSION_POINTS.md | Elsa.Modularity.Api | Elsa.Modularity | Overridable contracts Implementable contributor interfaces |
0 | yes | ||
| src/Elsa/Persistence/EFCore/EXTENSION_POINTS.md | Elsa.Persistence.EFCore | Elsa.Persistence | Overridable contracts Implementable contributor interfaces Writing a persistence feature ( EFCorePersistenceShellFeatureBase<TDbContext>)Events |
Named read ports + EFCoreReadStore<TDbContext, TEntity> (closed-query read surface)IUpsertCommandGenerator (Feature contract — Elsa.Persistence.EFCore)IElsaDbContextSchema (Feature contract — Elsa.Persistence.EFCore)IEntitySavingHandler<TDbContext, TEntity> (Feature contract — Elsa.Persistence.EFCore)IEntityLoadingHandler<TDbContext, TEntity> (Feature contract — Elsa.Persistence.EFCore)Out-of-band hooks (NOT event-dispatched) OnEntitySaving OnEntityLoading |
entity Handler (action-named contributor). Lives in: Elsa.Persistence.EFCore (Contracts/).entity Handler (action-named contributor). Lives in: Elsa.Persistence.EFCore (Contracts/). |
2 | yes |
| src/Elsa/Persistence/Groundwork/EXTENSION_POINTS.md | Elsa.Persistence.Groundwork | Elsa.Persistence | Provider selection — host composition Override — replacement contracts Extend — contribution (fan-in) Schema-version model |
0 | yes | ||
| src/Elsa/Pipelines/Core/EXTENSION_POINTS.md | Elsa.Pipelines.Core | Elsa.Pipelines | Implementable contributor interfaces The shared pipeline builder |
IMiddleware (Core — Elsa.Pipelines.Core)PipelineDelegate<TContext> (Core — Elsa.Pipelines.Core)IPipelineBuilder<TContext> / PipelineBuilder<TContext> (Core — Elsa.Pipelines.Core) |
Contributor (pipeline middleware step). The single, message-agnostic middleware composition builder. Use(...) appends a component; Build() folds the components (reverse registration order, so the first-registered middleware runs first) into one PipelineDelegate<TContext>. |
1 | yes |
| src/Elsa/Secrets/Core/EXTENSION_POINTS.md | Elsa.Secrets.Core | Elsa.Secrets | Contracts Safety Rules |
0 | yes | ||
| src/Elsa/Secrets/EXTENSION_POINTS.md | Elsa.Secrets | Elsa.Secrets | Service Overrides Master-Key Rotation Built-In Stores Runtime Integration |
0 | yes | ||
| src/Elsa/Serialization/SystemText/EXTENSION_POINTS.md | Elsa.Serialization.SystemText | Elsa.Serialization | Implementable contributor interfaces Events |
IJsonConverterSource (Core — Elsa.Serialization.Core)OnJsonPayloadConvertersInitializing |
Source (returns values — pull pattern). | 1 | yes |
| src/Elsa/Tasks/EXTENSION_POINTS.md | Elsa.Tasks | Elsa.Tasks | Overridable contracts Implementable contributor interfaces |
ITaskManager (Core — Elsa.Tasks.Core)ITaskExecutor (Core — Elsa.Tasks.Core)ITopologicalTaskSorter (Core — Elsa.Tasks.Core)IStartupTask : ITask (Core — Elsa.Tasks.Core)IRecurringTask : ITask (Core — Elsa.Tasks.Core)IBackgroundTask : ITask (Core — Elsa.Tasks.Core) |
Contributor — run once at application startup in topological order (respecting [TaskDependency] + [Order]).Contributor — run on a schedule. Configure schedule via ITaskSchedule (Elsa.Tasks.Schedules).Contributor — long-running background work (hosted service lifecycle). |
2 | yes |
| src/Elsa/Workflows/Design/Api/EXTENSION_POINTS.md | Elsa.Workflows.Design.Api | Elsa.Workflows | Supported management-client API boundary Overridable contracts Implementable contributor interfaces Events |
IWorkflowDefinitionLookup (Core — Elsa.Workflows.Design.Core)IWorkflowDesignContextFactory (Core — Elsa.Workflows.Design.Core)Commands — IUpdateDraftCommand + 5 lifecycle (Core — Elsa.Workflows.Design.Persistence.Core)IDraftStateDiffEngine (Feature contract — Elsa.Workflows.Design.Persistence.EFCore)Domain-model abstractions IActivityInputOptionsProvider (Core — Elsa.Workflows.Design.Core)IActivityStructureHandler (Core — Elsa.Workflows.Design.Core)OnDraftCreated OnDraftDiscarded OnActivityAddedToDraft OnActivityRemovedFromDraft OnActivityMovedInDraft OnActivityInputAddedToDraft OnActivityInputUpdatedInDraft OnActivityInputRemovedFromDraft OnActivityOutputAddedToDraft OnActivityOutputUpdatedInDraft OnActivityOutputRemovedFromDraft OnVariableDeclaredInDraft OnVariableUpdatedInDraft OnVariableRemovedFromDraft OnWorkflowInputAddedToDraft OnWorkflowInputUpdatedInDraft OnWorkflowInputRemovedFromDraft OnWorkflowOutputAddedToDraft OnWorkflowOutputUpdatedInDraft OnWorkflowOutputRemovedFromDraft |
Keyed Source (add-don't-replace). Each provider contributes allowable design-time values under one stable, case-sensitive Key.Contributor (add-don't-replace, keyed by structure Kind). One handler per composite/container activity structure kind; generic design and publishing code dispatch to the matching handler without interpreting activity-specific structure payloads. |
0 | yes |
| src/Elsa/Workflows/Design/Persistence/EFCore/EXTENSION_POINTS.md | Elsa.Workflows.Design.Persistence.EFCore | Elsa.Workflows | Overridable contracts Entity persistence contributors |
IUpdateDraftCommand (Core — Elsa.Workflows.Design.Persistence.Core)ICreateDraftCommand (Core — Elsa.Workflows.Design.Persistence.Core)ICloneDraftFromVersionCommand (Core — Elsa.Workflows.Design.Persistence.Core)IDiscardDraftCommand (Core — Elsa.Workflows.Design.Persistence.Core)IPromoteDraftToVersionCommand (Core — Elsa.Workflows.Design.Persistence.Core)IAddWorkflowDefinitionCommand (Core — Elsa.Workflows.Design.Persistence.Core)ISaveWorkflowDefinitionCommand (Core — Elsa.Workflows.Design.Persistence.Core)IDeleteWorkflowDefinitionPermanentlyCommand (Core — Elsa.Workflows.Design.Persistence.Core)ISubmitWorkflowDefinitionCommand (Core — Elsa.Workflows.Design.Persistence.Core)IDraftStateDiffEngine (Core — Elsa.Workflows.Design.Persistence.Core) |
0 | yes | |
| src/Elsa/Workflows/Design/Persistence/Groundwork/EXTENSION_POINTS.md | Elsa.Workflows.Design.Persistence.Groundwork | Elsa.Workflows | Replacement contracts Document model |
0 | yes | ||
| src/Elsa/Workflows/Design/Reconciliation/EXTENSION_POINTS.md | Elsa.Workflows.Design.Reconciliation | Elsa.Workflows | Implementable contributor interfaces Events |
IWorkflowReconciliationSource (Feature contract — Elsa.Workflows.Design.Reconciliation)OnWorkflowVersionsReconciling |
Source (returns reconciliation models — pull pattern). | 1 | yes |
| src/Elsa/Workflows/Design/Validations/EXTENSION_POINTS.md | Elsa.Workflows.Design.Validations | Elsa.Workflows | Overridable contracts Implementable contributor interfaces Events |
IDraftValidator (Core — Elsa.Workflows.Design.Validations.Core)OnDraftValidating OnDraftValidated |
Validator (action-named contributor — inspects and returns findings). | 1 | yes |
| src/Elsa/Workflows/Publishing/Api/EXTENSION_POINTS.md | Elsa.Workflows.Publishing.Api | Elsa.Workflows | Overridable contracts Contract obligations Persistence-provider checklist Cross-domain seams consumed by Publishing References |
Authority stores Policy and preflight Activation and projection reconciliation |
0 | yes | |
| src/Elsa/Workflows/Publishing/Core/EXTENSION_POINTS.md | Elsa.Workflows.Publishing.Core | Elsa.Workflows | 0 | yes | - | ||
| src/Elsa/Workflows/Runtime/Api/EXTENSION_POINTS.md | Elsa.Workflows.Runtime.Api | Elsa.Workflows | API-facing replacement contracts | 0 | yes | ||
| src/Elsa/Workflows/Runtime/Distributed/Persistence/Groundwork/EXTENSION_POINTS.md | Elsa.Workflows.Runtime.Distributed.Persistence.Groundwork | Elsa.Workflows | Provider selection — host composition Persisted document kinds Concurrency model Schema evolution |
0 | yes | ||
| src/Elsa/Workflows/Runtime/EXTENSION_POINTS.md | Elsa.Workflows.Runtime | Elsa.Workflows | Documented ADR 0033 deviations hosted at the composition root Semantic guard Overridable replacement contracts Implementable contributor interfaces Coalescing checkpoint persistence (opt-in — W9 / E3-6 / RT-10) |
IWorkflowExecutionStateStore (Core — Elsa.Workflows.Runtime.Core)IWorkflowExecutableReferenceGarbageCollector (Core — Elsa.Workflows.Runtime.Core)IWorkflowExecutableRootWriteLeaseManager (Core — Elsa.Workflows.Runtime.Core)IRuntimeCheckpointPersistencePolicy (Core — Elsa.Workflows.Runtime.Core)IRuntimeCheckpointWriter (Core — Elsa.Workflows.Runtime.Core)IRuntimePostCommitIntentDispatcher (Core — Elsa.Workflows.Runtime.Core)IRuntimePostCommitOutboxStore (Core — Elsa.Workflows.Runtime.Core)IRuntimeRecoveryScanner (Core — Elsa.Workflows.Runtime.Core)IRuntimeResumptionService (Core — Elsa.Workflows.Runtime.Core)IRuntimeDomainRetryPolicy (Core — Elsa.Workflows.Runtime.Core)IRuntimeFaultCapturePolicy (Core — Elsa.Workflows.Runtime.Core)IWorkflowEngineTracer (Core — Elsa.Workflows.Runtime.Core.Diagnostics)IWorkflowSchedulerPoisonStore (Core — Elsa.Workflows.Runtime.Core)IRuntimeVolatileWaitPolicy (Core — Elsa.Workflows.Runtime.Core)IRuntimeGeneratorEmissionScheduler (Core — Elsa.Workflows.Runtime.Core)IWorkflowHoldStateStore (Core — Elsa.Workflows.Runtime.Core)IRuntimePauseDecisionProvider (Core — Elsa.Workflows.Runtime.Core)IBookmarkResumeResolver (Core — Elsa.Workflows.Runtime.Core)IBookmarkStimulusLookup (Core — Elsa.Workflows.Runtime.Core)IBookmarkResumeDispatcher (Core — Elsa.Workflows.Runtime.Core)IBookmarkStimulusIndex (Core — Elsa.Workflows.Runtime.Core)IGlobalBookmarkStimulusLookup (Core — Elsa.Workflows.Runtime.Core)IWorkflowTriggerBindingStore (Core — Elsa.Workflows.Runtime.Core)IWorkflowTriggerBindingExtractor (Core — Elsa.Workflows.Runtime.Core)IWorkflowTriggerIndexer (Core — Elsa.Workflows.Runtime.Core)IWorkflowTriggerIndexValidator (Core — Elsa.Workflows.Runtime.Core)IWorkflowTriggerIndexObserver (Core — Elsa.Workflows.Runtime.Core)IBookmarkLifecycleObserver (Core — Elsa.Workflows.Runtime.Core, spec 089 D)IStimulusStartDeduplicator (Core — Elsa.Workflows.Runtime.Core)IStimulusRouter (Core — Elsa.Workflows.Runtime.Core)IRuntimeActivityOutputReader (Core — Elsa.Workflows.Runtime.Core)IRuntimeActivityOutputRegister (Core — Elsa.Workflows.Runtime.Core)IRuntimeInputBindingResolver (Core — Elsa.Workflows.Runtime.Core)IRuntimeInputBindingValidator (Core — Elsa.Workflows.Runtime.Core)IRuntimeActivityInputMaterializer (Core — Elsa.Workflows.Runtime.Core)IMaterializationExpressionState (Core — Elsa.Workflows.Runtime.Core)IExecutionExpressionState (Core — Elsa.Workflows.Runtime.Core)IRuntimePayloadCapturePolicy (Core — Elsa.Workflows.Runtime.Core)IWorkflowExecutionActorProvider (Core — Elsa.Workflows.Runtime.Core)Distributed placement and transport (leaf — Elsa.Workflows.Runtime.Distributed, W20/E3-3)ExecutionPlacementPumpTask (leaf — Elsa.Workflows.Runtime.Distributed, W20/E3-3)IWorkflowStartDispatcher (Core — Elsa.Workflows.Runtime.Core)IWorkflowExecutionCommandExecutor (Core — Elsa.Workflows.Runtime.Core)IWorkflowDrainOrchestrator (Core — Elsa.Workflows.Runtime.Core)IRuntimeExecutionOwnershipService (Core — Elsa.Workflows.Runtime.Core)IRuntimeExecutionOwnershipContextAccessor (Core — Elsa.Workflows.Runtime.Core)IWorkflowSchedulerWorkQueue (Core — Elsa.Workflows.Runtime.Core)IDurableTimerStore (Core — Elsa.Workflows.Runtime.Core)IDurableTimerScheduler (Core — Elsa.Workflows.Runtime.Core)IRecurringTriggerScheduleStore (Core — Elsa.Workflows.Runtime.Core)IRecurringTriggerScheduleProvider (Core — Elsa.Workflows.Runtime.Core)IActivityExecutionStateStore (Core — Elsa.Workflows.Runtime.Core)IActivityExecutionInspectionStore (Core — Elsa.Workflows.Runtime.Core)IActivityExecutionInspectionWriter (Core — Elsa.Workflows.Runtime.Core)IRuntimeActivityExecutionInspectionAccumulator (Core — Elsa.Workflows.Runtime.Core)IBookmarkStateStore (Core — Elsa.Workflows.Runtime.Core)IDurableValueStateStore (Core — Elsa.Workflows.Runtime.Core)IIncidentStateStore (Core — Elsa.Workflows.Runtime.Core)IExecutionLivenessStateStore (Core — Elsa.Workflows.Runtime.Core)ISchedulerStateStore (Core — Elsa.Workflows.Runtime.Core)IWorkflowSchedulerDrainer (Core — Elsa.Workflows.Runtime.Core)IWorkflowSchedulerPauseGate (Core — Elsa.Workflows.Runtime.Core)IWorkflowSchedulerDrainPolicy (Core — Elsa.Workflows.Runtime.Core)IWorkflowSchedulerDrainObserver (Core — Elsa.Workflows.Runtime.Core)IWorkflowSchedulerWorkHandler (Core — Elsa.Workflows.Runtime.Core)IFallbackWorkflowSchedulerWorkHandler (Core — Elsa.Workflows.Runtime.Core)IWorkflowExecutableStore (Core — Elsa.Workflows.Runtime.Core)IWorkflowRuntimeMiddleware (Core — Elsa.Workflows.Runtime.Core)IActivityRuntimeMiddleware (Core — Elsa.Workflows.Runtime.Core)IRuntimePipelineWorkHandler (Core — Elsa.Workflows.Runtime.Core)AddWorkflowRuntime(IServiceCollection) (engine — Elsa.Workflows.Runtime)WorkflowsRuntimeCheckpointPersistenceFeature (Runtime.Api — Elsa.Workflows.Runtime.Api)ResumeTargetAttribute (Core — Elsa.Activities.Runtime.Core)ISignalHandler (Core — Elsa.Activities.Runtime.Core)IActivityCompletionHandler (Core — Elsa.Activities.Runtime.Core)IActivityTriggerStimulusProvider (Core — Elsa.Workflows.Runtime.Core)IRuntimeCoalescingSessionAccessor (engine — Elsa.Workflows.Runtime)IRuntimeCoalescingDrainScopeFactory (engine — Elsa.Workflows.Runtime) |
Replacement (one provider owns retained workflow-execution state and its executable-retention projection). Replacement (one collector owns physical executable-artifact reclamation for a runtime composition). Replacement (one coordinator scopes the provider-backed lease required to establish an executable-retention root). Replacement (one policy decides how checkpoints flush in a runtime composition). Replacement (one writer owns persistence of checkpoint envelopes for a runtime composition). Replacement (one dispatcher owns delivery of committed outbound runtime intents for a composition). Replacement (one provider owns durable post-commit outbox state for a runtime composition). Replacement (one scanner identifies interrupted workflow executions for a runtime composition). Replacement (one service owns a single system-wide resumption sweep pass for a runtime composition). Replacement (one policy decides workflow/activity domain retry behavior for a runtime composition). Replacement (one policy decides how an exception is turned into structured fault information for a runtime composition). Replacement (one tracer owns engine-phase span emission for a runtime composition). Replacement (one store owns poison/retry records for crashed scheduler work items in a runtime composition). Replacement (one policy decides whether in-memory volatile waits are allowed in a runtime composition). Replacement (one scheduler adapter turns in-workflow generator emissions into ordered runtime scheduler work). Replacement (one store owns administrative control-plane state for a runtime composition). Replacement (one provider decides whether runtime scheduler work may advance through named pause boundaries). Replacement (one resolver owns durable bookmark-to-artifact resume resolution for a runtime composition). Replacement (one lookup surface finds bookmark continuation state for a workflow execution and stimulus identity). Replacement (one dispatcher turns matched bookmark stimuli into workflow execution mailbox commands). Replacement (narrow cross-execution read surface over bookmark state; segregated from IBookmarkStateStore so it can be widened/replaced independently).Replacement (one cross-execution lookup surface finds every waiting bookmark for a stimulus). Replacement (one provider owns the durable trigger-binding index for a runtime composition). Replacement (one extractor derives trigger bindings from a published executable). Replacement (one indexer writes the trigger index for a published artifact). Contribution (fan-in; enumerable). Register with services.TryAddEnumerable(ServiceDescriptor.Singleton<IWorkflowTriggerIndexValidator, MyValidator>()); the indexer resolves IEnumerable<IWorkflowTriggerIndexValidator>.Contribution (fan-in; enumerable). Register with services.TryAddEnumerable(ServiceDescriptor.Scoped<IWorkflowTriggerIndexObserver, MyObserver>()) (or Singleton); the indexer resolves IEnumerable<IWorkflowTriggerIndexObserver>.Contribution (fan-in; enumerable). Register with services.TryAddEnumerable(ServiceDescriptor.Singleton<IBookmarkLifecycleObserver, MyObserver>()); fanned in by BookmarkLifecycleNotifier, which the two commit sites resolve.Replacement (narrow best-effort dedup for the stimulus START path, Condition A). Replacement (one routing spine turns an external stimulus into starts and/or resumes). Query surface (read-only active-scope output lookup used by resolvers and resolution contexts). Replacement (one active-scope output register owns execution-local activity output lookup for a runtime composition). Replacement (one resolver owns runtime input binding materialization rules for a runtime composition). Replacement (one validator owns executable binding diagnostics for a runtime composition). Replacement (one materializer owns conversion from executable input bindings to activity runtime arguments for a composition). Bridge (carries workflow-scoped values from RuntimeInputBindingResolutionContext to language pre-processors during activity-input materialization).Bridge (carries live execution-time workflow state — identity, inputs, variables, prior outputs — to language pre/post-processors during activity execution). Execution-time counterpart to IMaterializationExpressionState (ADR 0030).Replacement (one policy decides which runtime observability payloads may be captured for a runtime composition). Replacement (one provider owns workflow-execution mailbox activation, routing, and passivation for a runtime composition). Registered recurring task ( IRecurringTask; one per node, DependsOn Tasks).Replacement (one generator owns runtime command-dispatch IDs for a runtime composition). Replacement (one dispatcher owns conversion from executable artifact start requests into workflow execution agent commands). Replacement (one processor decides what an accepted workflow-execution command does inside the active actor mailbox). Replacement (one coordinator owns command-triggered workflow execution drain orchestration for a runtime composition). Replacement (one service owns single-writer fencing — lease acquisition, heartbeat, release, and stale-writer rejection — for a runtime composition). Replacement (one accessor owns the ambient current-lease scope for a runtime composition). Replacement (one queue owns recorded scheduler work for a runtime composition). Replacement (one store owns durable timers for a runtime composition). Replacement (one scheduler owns durable-timer registration for a runtime composition). Replacement (one store owns recurring-start schedules for a runtime composition). Strategy set (context-selected, exact-one owner per recurring-trigger node; not a contributor fan-in). Replacement (one store owns split continuation state for concrete activity executions in a runtime composition). Replacement query surface (one store owns committed inspection projections for concrete activity executions in a runtime composition). Replacement command surface (one writer owns committed inspection projection upserts for concrete activity executions in a runtime composition). Replacement (one accumulator assembles checkpoint-scoped activity execution inspection projections for a runtime composition). Replacement (one store owns split continuation state for durable bookmark resume handles in a runtime composition). Replacement (one store owns split continuation state for declared durable runtime values in a runtime composition). Replacement (one store owns split continuation state for execution-affecting incidents in a runtime composition). Replacement (one store owns split continuation state for runtime operational coordination in a runtime composition). Replacement (one store owns the split scheduler continuation-state snapshot in a runtime composition). Replacement (one drainer owns deterministic dispatch of queued scheduler work for a runtime composition). Replacement (one gate evaluates whether queued scheduler work may cross named pause boundaries). Replacement (one policy decides whether recorded scheduler work triggers a drain in the runtime composition). Contributor (observers consume coordinated drain results produced by workflow execution draining). Contributor (handlers consume drained scheduler work items). Contributor marker (handlers consume drained scheduler work items only after ordinary handlers decline them). Replacement (one store owns runtime executable artifact lookup for a runtime composition). Contributor (workflow runtime pipeline step). Contributor (activity runtime pipeline step). Contributor opt-in (a migrated scheduler work handler's context-aware overload). Composition root (host-agnostic runtime registration). Shell-scoped policy selector and post-provider decorator. Declaration surface (activity author contract). Contributor (receives a signal and acts — push pattern). Overridable single-impl (one handler expected at a time, injected by DI). Strategy set (context-selected, exact-one owner per executable trigger node; not a contributor fan-in). Replacement (one ambient accessor exposes the active coalescing session to the decorators). Replacement (one factory opens the per-drain coalescing scope and performs the quiescence flush). |
4 | yes |
| src/Elsa/Workflows/Runtime/Http/EXTENSION_POINTS.md | Elsa.Workflows.Runtime.Http | Elsa.Workflows | Overridable contracts Contributed implementations (not overridable here) Internal serialization seam |
IHttpEndpointRoutesResolver (Feature contract — Elsa.Workflows.Runtime.Http)IHttpEndpointAuthorizationHandler (Core contract — Elsa.Http.Core; default impl here)IHttpEndpointFaultHandler (Core contract — Elsa.Http.Core; default impl here)RouteTableTriggerIndexObserver → IWorkflowTriggerIndexObserver (seam owned by Elsa.Workflows.Runtime.Core)HttpEndpointRoutingUniquenessValidator → IWorkflowTriggerIndexValidator (seam owned by Elsa.Workflows.Runtime.Core)RouteTableBookmarkObserver → IBookmarkLifecycleObserver (seam owned by Elsa.Workflows.Runtime.Core)UpdateRouteTableStartupTask → IStartupTask (Core — Elsa.Tasks.Core)IHttpEndpointRouteTableSynchronizer (internal seam — Elsa.Workflows.Runtime.Http; default impl HttpEndpointRouteTableSynchronizer) |
Contribution into the Core index-observer seam (TryAddEnumerable, Singleton).Contribution into the Core PRE-write index-validation seam ( TryAddEnumerable, Singleton).Contribution into the Core bookmark-lifecycle seam ( TryAddEnumerable, Singleton).Registered startup task (Scoped). Registered TryAddSingleton; owns a SemaphoreSlim(1,1). |
0 | yes |
| src/Elsa/Workflows/Runtime/Resumption/EXTENSION_POINTS.md | Elsa.Workflows.Runtime.Resumption | Elsa.Workflows | Shell feature Contributor implementations Options |
WorkflowsRuntimeResumptionFeature : IShellFeature (Elsa.Workflows.Runtime.Resumption)RuntimeResumptionPumpTask : IRecurringTask (Elsa.Workflows.Runtime.Resumption)RuntimeResumptionOptions (Elsa.Workflows.Runtime.Resumption) |
Contributor (recurring task; scheduled by the Tasks domain TaskManager). |
0 | yes |
| src/Elsa3/Activities/Design/Import/EXTENSION_POINTS.md | Elsa3.Activities.Design.Import | Elsa3 | Implementable contributor interfaces | IActivityCollectionJsonSource (Feature contract — Elsa3.Activities.Design.Import) |
Source (opens a stream of activity JSON — pull pattern). | 1 | yes |
| src/Elsa3/Mapping/EXTENSION_POINTS.md | Elsa3.Mapping | Elsa3 | Replacement/import boundary contracts | IElsa3WorkflowDefinitionImporter (Feature contract — Elsa3.Mapping) |
Replacement/import boundary contract. | 0 | yes |
| Status | Catalog |
|---|---|
| ok | Root index and discovered source catalogs match. |