Skip to content

Control Plane — events

Generated from the architecture model

This page is rendered from model/**/*.yaml by tools/docs_model during mkdocs build. Edit the YAML, not this page; hand-written design lives on the linked service, platform and plane pages.

Topics follow context.area.vN.event-name (ADR-0012 port, ADR-0014 envelope). The context segment is the producing bounded context's slug.

Event Producer Topic Scope Consumers
AgentCardPublished AgentCardService asset-publication.agent-cards.v1.agent-card-published integration 2
AgentCardWithdrawn AgentCardService asset-publication.agent-cards.v1.agent-card-withdrawn integration 2
AssetReleaseSubmitted AgentRegistryService asset-publication.releases.v1.asset-release-submitted integration 2
AssetReleasePublished AgentRegistryService asset-publication.releases.v1.asset-release-published integration 13
AssetReleaseDeprecated AgentRegistryService asset-publication.releases.v1.asset-release-deprecated integration 9
AssetReleaseRevoked AgentRegistryService asset-publication.releases.v1.asset-release-revoked integration 9
BudgetReserved CostUsageService usage-accounting.reservations.v1.budget-reserved integration 2
BudgetReservationDenied CostUsageService usage-accounting.reservations.v1.budget-reservation-denied integration 2
ReservationSettled CostUsageService usage-accounting.reservations.v1.reservation-settled integration 3
UsageRecorded CostUsageService usage-accounting.usage.v1.usage-recorded integration 2
UsageReconciled CostUsageService usage-accounting.usage.v1.usage-reconciled integration 2
BudgetUpdated CostUsageService usage-accounting.budgets.v1.budget-updated integration 2
EnvironmentCreated EnvironmentService projects.environments.v1.environment-created integration 3
EnvironmentStateChanged EnvironmentService projects.environments.v1.environment-state-changed integration 5
SubscriptionChanged FactoryCommercialService factory-commercial.subscriptions.v1.subscription-changed integration 5
InvoiceIssued FactoryCommercialService factory-commercial.invoices.v1.invoice-issued integration 2
ProjectCreated ProjectService projects.projects.v1.project-created integration 3
ProjectStateChanged ProjectService projects.projects.v1.project-state-changed integration 6
MembershipChanged ProjectService projects.memberships.v1.membership-changed integration 3
DelegationChanged ProjectService projects.delegations.v1.delegation-changed integration 3
SourceScopeChanged ProjectService projects.scope.v1.source-scope-changed integration 2
RunAccepted RunControlService run-control.runs.v1.run-accepted integration 4
RunStateChanged RunControlService run-control.runs.v1.run-state-changed integration 2
RunCompleted RunControlService run-control.runs.v1.run-completed integration 8
RunFailed RunControlService run-control.runs.v1.run-failed integration 4
RunCancelled RunControlService run-control.runs.v1.run-cancelled integration 5
AttemptDispatched RunControlService run-control.attempts.v1.attempt-dispatched integration 2
AttemptOutcomeRecorded RunControlService run-control.attempts.v1.attempt-outcome-recorded integration 5
LeaseExpired RunControlService run-control.leases.v1.lease-expired integration 3
ApprovalRequested RunControlService run-control.approvals.v1.approval-requested integration 3
ApprovalDecided RunControlService run-control.approvals.v1.approval-decided integration 13

AgentCardPublished

A card is discoverable.

Producer AgentCardService (BC-04 Asset Publication)
Scope / version integration / v1
Topic asset-publication.agent-cards.v1.agent-card-published
Aggregate AgentCard
Consumers StudioBff, MarketplaceCatalogService
Field Type Required Description
cardId guid yes
tenantId string yes
agentId string yes
releaseId string yes
visibility enum:CardVisibility yes

AgentCardWithdrawn

A card was withdrawn because its release was deprecated or revoked.

Producer AgentCardService (BC-04 Asset Publication)
Scope / version integration / v1
Topic asset-publication.agent-cards.v1.agent-card-withdrawn
Aggregate AgentCard
Consumers StudioBff, MarketplaceCatalogService
Field Type Required Description
cardId guid yes
tenantId string yes
agentId string yes
reason string yes

AssetReleaseSubmitted

A release candidate entered InReview; evaluation must run.

Producer AgentRegistryService (BC-04 Asset Publication)
Scope / version integration / v1
Topic asset-publication.releases.v1.asset-release-submitted
Aggregate AssetRelease
Consumers QualityScoreService, StudioBff
Field Type Required Description
releaseId string yes
tenantId string yes
assetKind enum:AssetKind yes
assetId string yes
version string yes
manifestHash hash yes

AssetReleasePublished

A release is Published and loadable.

Producer AgentRegistryService (BC-04 Asset Publication)
Scope / version integration / v1
Topic asset-publication.releases.v1.asset-release-published
Aggregate AssetRelease
Consumers TemplateRegistryService, BlueprintService, FleetRolloutService, PolicyEngineService, McpServerRegistryService, ToolAdapterService, ModelRouterService, WorkflowEngineService, AgentRuntimeService, AgentCardService, StudioBff, AuditService, MarketplaceCatalogService
Field Type Required Description
releaseId string yes
tenantId string yes
assetKind enum:AssetKind yes
assetId string yes
version string yes
manifestHash hash yes

AssetReleaseDeprecated

No new runs may pin this release.

Producer AgentRegistryService (BC-04 Asset Publication)
Scope / version integration / v1
Topic asset-publication.releases.v1.asset-release-deprecated
Aggregate AssetRelease
Consumers TemplateRegistryService, BlueprintService, MarketplaceCatalogService, ToolAdapterService, ModelRouterService, AgentRuntimeService, RunControlService, AgentCardService, StudioBff
Field Type Required Description
releaseId string yes
tenantId string yes
inFlightPolicy string yes

AssetReleaseRevoked

A release was revoked for a security or policy reason; in-flight runs follow the stated policy.

Producer AgentRegistryService (BC-04 Asset Publication)
Scope / version integration / v1
Topic asset-publication.releases.v1.asset-release-revoked
Aggregate AssetRelease
Consumers MarketplaceCatalogService, PolicyEngineService, McpServerRegistryService, ToolAdapterService, ModelRouterService, AgentRuntimeService, RunControlService, AgentCardService, AuditService
Field Type Required Description
releaseId string yes
tenantId string yes
reason string yes
inFlightPolicy string yes

BudgetReserved

A run has budget and may be dispatched.

Producer CostUsageService (BC-05 Usage Accounting)
Scope / version integration / v1
Topic usage-accounting.reservations.v1.budget-reserved
Aggregate Reservation
Consumers RunControlService, StudioBff
Field Type Required Description
reservationId guid yes
runId guid yes
tenantId string yes
estimatedUsd decimal yes

BudgetReservationDenied

No budget could be reserved; the run fails as policy-denied.

Producer CostUsageService (BC-05 Usage Accounting)
Scope / version integration / v1
Topic usage-accounting.reservations.v1.budget-reservation-denied
Aggregate Reservation
Consumers RunControlService, StudioBff
Field Type Required Description
runId guid yes
tenantId string yes
reason string yes

ReservationSettled

Observed usage settled against the reservation.

Producer CostUsageService (BC-05 Usage Accounting)
Scope / version integration / v1
Topic usage-accounting.reservations.v1.reservation-settled
Aggregate Reservation
Consumers FactoryCommercialService, StudioBff, DashboardService
Field Type Required Description
reservationId guid yes
runId guid yes
tenantId string yes
settledUsd decimal yes
uncertain bool yes

UsageRecorded

A metered quantity was recorded.

Producer CostUsageService (BC-05 Usage Accounting)
Scope / version integration / v1
Topic usage-accounting.usage.v1.usage-recorded
Aggregate UsageRecord
Consumers FactoryCommercialService, DashboardService
Field Type Required Description
usageId guid yes
tenantId string yes
projectId guid yes
meter enum:Meter yes
quantity decimal yes
status enum:UsageStatus yes

UsageReconciled

An estimated or uncertain record was confirmed.

Producer CostUsageService (BC-05 Usage Accounting)
Scope / version integration / v1
Topic usage-accounting.usage.v1.usage-reconciled
Aggregate UsageRecord
Consumers FactoryCommercialService, DashboardService
Field Type Required Description
usageId guid yes
tenantId string yes
confirmedCostUsd decimal yes

BudgetUpdated

A budget limit or threshold changed.

Producer CostUsageService (BC-05 Usage Accounting)
Scope / version integration / v1
Topic usage-accounting.budgets.v1.budget-updated
Aggregate Budget
Consumers StudioBff, AuditService
Field Type Required Description
budgetId guid yes
tenantId string yes
projectId guid no
limitUsd decimal yes

EnvironmentCreated

An environment exists.

Producer EnvironmentService (BC-01 Project & Environment)
Scope / version integration / v1
Topic projects.environments.v1.environment-created
Aggregate Environment
Consumers IaCProvisioningService, RuntimeEnvironmentService, StudioBff
Field Type Required Description
environmentId guid yes
projectId guid yes
tenantId string yes
class enum:EnvironmentClass yes

EnvironmentStateChanged

Activated, frozen, unfrozen or retired.

Producer EnvironmentService (BC-01 Project & Environment)
Scope / version integration / v1
Topic projects.environments.v1.environment-state-changed
Aggregate Environment
Consumers EnvironmentPromotionService, RunControlService, ToolAdapterService, StudioBff, AuditService
Field Type Required Description
environmentId guid yes
tenantId string yes
fromState enum:EnvironmentState yes
toState enum:EnvironmentState yes

SubscriptionChanged

Edition, seats or state changed.

Producer FactoryCommercialService (BC-34 Factory Commercial)
Scope / version integration / v1
Topic factory-commercial.subscriptions.v1.subscription-changed
Aggregate FactorySubscription
Consumers LicenseService, FleetInventoryService, StudioBff, AuditService, CostUsageService
Field Type Required Description
subscriptionId guid yes
tenantId string yes
edition enum:EditionCode yes
state enum:SubscriptionState yes

InvoiceIssued

A period invoice was issued from reconciled usage.

Producer FactoryCommercialService (BC-34 Factory Commercial)
Scope / version integration / v1
Topic factory-commercial.invoices.v1.invoice-issued
Aggregate FactorySubscription
Consumers StudioBff, StudioNotificationService
Field Type Required Description
invoiceId guid yes
tenantId string yes
totalUsd decimal yes

ProjectCreated

A project exists with its first Workspace admin.

Producer ProjectService (BC-01 Project & Environment)
Scope / version integration / v1
Topic projects.projects.v1.project-created
Aggregate Project
Consumers CostUsageService, StudioBff, AuditService
Field Type Required Description
projectId guid yes
tenantId string yes
key string yes
region string yes

ProjectStateChanged

A project moved between Active, Suspended, Closing and Closed.

Producer ProjectService (BC-01 Project & Environment)
Scope / version integration / v1
Topic projects.projects.v1.project-state-changed
Aggregate Project
Consumers IntegrationService, ArtifactService, RunControlService, StudioBff, AuditService, KnowledgeIngestionService
Field Type Required Description
projectId guid yes
tenantId string yes
fromState enum:ProjectState yes
toState enum:ProjectState yes

MembershipChanged

A role was granted, changed or removed.

Producer ProjectService (BC-01 Project & Environment)
Scope / version integration / v1
Topic projects.memberships.v1.membership-changed
Aggregate Project
Consumers ApprovalPolicyService, StudioBff, AuditService
Field Type Required Description
projectId guid yes
tenantId string yes
subjectId string yes
role enum:MembershipRole yes
change string yes

DelegationChanged

A delegation was granted, expired or revoked.

Producer ProjectService (BC-01 Project & Environment)
Scope / version integration / v1
Topic projects.delegations.v1.delegation-changed
Aggregate Project
Consumers ApprovalPolicyService, StudioBff, AuditService
Field Type Required Description
delegationId guid yes
projectId guid yes
tenantId string yes
granteeId string yes
role enum:MembershipRole yes
change string yes

SourceScopeChanged

The set of sources a run may touch changed.

Producer ProjectService (BC-01 Project & Environment)
Scope / version integration / v1
Topic projects.scope.v1.source-scope-changed
Aggregate Project
Consumers KnowledgeIngestionService, RunControlService
Field Type Required Description
projectId guid yes
tenantId string yes
entries list:string yes

RunAccepted

A run was accepted and pinned to a release, policy revision and snapshot.

Producer RunControlService (BC-03 Run Control)
Scope / version integration / v1
Topic run-control.runs.v1.run-accepted
Aggregate Run
Consumers WorkflowEngineService, CostUsageService, StudioBff, DashboardService
Field Type Required Description
runId guid yes
tenantId string yes
projectId string yes
workflowId string yes
releaseId string yes
policyRevision string yes
modelProfileId string yes
requestedBy string yes

RunStateChanged

A run moved between states (Accepted, Running, WaitingForApproval, Cancelling, Completed, Failed, Cancelled).

Producer RunControlService (BC-03 Run Control)
Scope / version integration / v1
Topic run-control.runs.v1.run-state-changed
Aggregate Run
Consumers StudioBff, DashboardService
Field Type Required Description
runId guid yes
tenantId string yes
fromState enum:RunState yes
toState enum:RunState yes
cause string yes

RunCompleted

Terminal success of a run with the hash of its result reference.

Producer RunControlService (BC-03 Run Control)
Scope / version integration / v1
Topic run-control.runs.v1.run-completed
Aggregate Run
Consumers GenerationRecipeService, FeedbackService, DashboardService, MemoryPromotionService, CostUsageService, ArtifactService, StudioBff, QualityScoreService
Field Type Required Description
runId guid yes
tenantId string yes
outcomeHash hash yes

RunFailed

Terminal failure with a failure class (transient, permanent, policy-denied, validation, cancellation, uncertain).

Producer RunControlService (BC-03 Run Control)
Scope / version integration / v1
Topic run-control.runs.v1.run-failed
Aggregate Run
Consumers GenerationRecipeService, CostUsageService, StudioBff, DashboardService
Field Type Required Description
runId guid yes
tenantId string yes
failureClass string yes
reason string yes

RunCancelled

All attempts settled after a cancellation intent.

Producer RunControlService (BC-03 Run Control)
Scope / version integration / v1
Topic run-control.runs.v1.run-cancelled
Aggregate Run
Consumers SecretBrokerService, WorkflowEngineService, AgentRuntimeService, CostUsageService, StudioBff
Field Type Required Description
runId guid yes
tenantId string yes
reason string yes
requestedBy string yes

AttemptDispatched

An attempt was dispatched to a lease holder with its fencing token.

Producer RunControlService (BC-03 Run Control)
Scope / version integration / v1
Topic run-control.attempts.v1.attempt-dispatched
Aggregate Attempt
Consumers AgentRuntimeService, DashboardService
Field Type Required Description
runId guid yes
stepId guid yes
attemptId guid yes
leaseId guid yes
fencingToken long yes
agentId string yes
skillId string no

AttemptOutcomeRecorded

The outcome of an attempt was recorded exactly once.

Producer RunControlService (BC-03 Run Control)
Scope / version integration / v1
Topic run-control.attempts.v1.attempt-outcome-recorded
Aggregate Attempt
Consumers ExecutionCapacityService, WorkflowEngineService, CostUsageService, QualityScoreService, DashboardService
Field Type Required Description
runId guid yes
stepId guid yes
attemptId guid yes
outcome enum:AttemptOutcome yes
failureClass string no
outcomeHash hash no

LeaseExpired

A lease passed its expiry without an outcome; the attempt is reconciled before any retry.

Producer RunControlService (BC-03 Run Control)
Scope / version integration / v1
Topic run-control.leases.v1.lease-expired
Aggregate Lease
Consumers SecretBrokerService, AgentRuntimeService, DashboardService
Field Type Required Description
attemptId guid yes
leaseId guid yes
holder string yes

ApprovalRequested

A human decision is required on an exact proposal version.

Producer RunControlService (BC-03 Run Control)
Scope / version integration / v1
Topic run-control.approvals.v1.approval-requested
Aggregate ApprovalRequest
Consumers StudioBff, StudioNotificationService, AuditService
Field Type Required Description
approvalId guid yes
runId guid yes
stepId guid yes
tenantId string yes
actionClass string yes
proposalHash hash yes
approverRule string yes
expiresAt datetime yes

ApprovalDecided

A decision was recorded (approved, rejected, expired, stale or cancelled).

Producer RunControlService (BC-03 Run Control)
Scope / version integration / v1
Topic run-control.approvals.v1.approval-decided
Aggregate ApprovalRequest
Consumers LicenseService, MarketplaceCatalogService, FleetIncidentService, FleetRolloutService, IaCProvisioningService, EnvironmentPromotionService, QualityScoreService, MemoryPromotionService, WorkflowEngineService, AgentRegistryService, AgentRuntimeService, StudioBff, AuditService
Field Type Required Description
approvalId guid yes
runId guid yes
tenantId string yes
state enum:ApprovalState yes
decidedBy string no
reason string no

Commands

Command Service Handled by Result events Summary
SubmitRelease AgentRegistryService AssetRelease AssetReleaseSubmitted
PublishRelease AgentRegistryService AssetRelease AssetReleasePublished
DeprecateRelease AgentRegistryService AssetRelease AssetReleaseDeprecated
Reserve CostUsageService Reservation BudgetReserved, BudgetReservationDenied
RecordUsage CostUsageService UsageRecord UsageRecorded
CreateEnvironment EnvironmentService Environment EnvironmentCreated
FreezeEnvironment EnvironmentService Environment EnvironmentStateChanged
ChangeSubscription FactoryCommercialService FactorySubscription SubscriptionChanged
CreateProject ProjectService Project ProjectCreated
CloseProject ProjectService Project ProjectStateChanged
SubmitRun RunControlService Run RunAccepted Accept a run (idempotent on scope + idempotency key).
CancelRun RunControlService Run RunStateChanged, RunCancelled Record cancellation intent; interruption is requested from the lease holder.
DecideApproval RunControlService ApprovalRequest ApprovalDecided, RunStateChanged Record one decision bound to the proposal hash and request version.
ReportAttemptOutcome RunControlService Attempt AttemptOutcomeRecorded, RunStateChanged Accept the single outcome from the current lease holder.

Consumed from other services

Consumer Event Producer Handler Purpose
AgentCardService AssetReleasePublished AgentRegistryService PublishCard Create or replace the card of an agent release.
AgentCardService AssetReleaseDeprecated AgentRegistryService WithdrawCard Withdraw the card.
AgentCardService AssetReleaseRevoked AgentRegistryService WithdrawCard Withdraw the card.
AgentRegistryService ApprovalDecided RunControlService PublishOnApproval Complete publication when the publication approval is granted.
CostUsageService RunAccepted RunControlService ReserveForRun Estimate and reserve budget for an accepted run.
CostUsageService RunCompleted RunControlService SettleReservation Settle observed usage.
CostUsageService RunFailed RunControlService SettleReservation Settle observed usage of a failed run.
CostUsageService RunCancelled RunControlService SettleOrRelease Release or settle after cancellation.
CostUsageService AttemptOutcomeRecorded RunControlService RecordAttemptUsage Record usage from the attempt receipt.
FactoryCommercialService UsageRecorded CostUsageService AccumulateMeter Accumulate meters for the current period.
FactoryCommercialService UsageReconciled CostUsageService AdjustMeter Adjust meters when estimates are confirmed.
FactoryCommercialService ReservationSettled CostUsageService AccumulateRunCost Period cost per run.
RunControlService StepReady WorkflowEngineService CreateStepAndDispatch Create the step (idempotent on stepRunId) and dispatch an attempt or open the approval of a Human step.
RunControlService WorkflowRunCompleted WorkflowEngineService CompleteRun Record the run as Completed with the output reference.
RunControlService WorkflowRunFailed WorkflowEngineService FailRun Record the run as Failed with the failure class reported by the engine.
RunControlService BudgetReserved CostUsageService ReleaseFirstStepOnReservation Dispatch the first attempt once the run budget is reserved.
RunControlService BudgetReservationDenied CostUsageService FailRunOnBudgetDenial Terminate the run as Failed (policy-denied) when no budget can be reserved.