Skip to content

FleetOperationsHost

Target

This page describes intended behaviour or structure. No implementation is claimed unless a section is explicitly marked Current implementation or Evidence.

Bounded context BC-35 Fleet Inventory & SLOs
Platform / plane Product Fleet Operations / Execution
Deployment granularity standalone host
Status target · ConnectSoft.Factory.Fleet
Built from connectsoft-microservice · libraries: connectsoft-extensions-saas-abstractions, connectsoft-extensions-saas-asp-net-core, connectsoft-extensions-messaging-model, connectsoft-extensions-messaging-model-orleans, connectsoft-extensions-persistence-model-nhibernate, connectsoft-extensions-observability
Decisions ADR-0012, ADR-0014, ADR-0015, ADR-0018
Traceability FR-09 FR-12 FUX-05 FUX-11 NFR-06 NFR-17 NFR-18 XL-10 XL-14 XL-16

Purpose and responsibilities

FleetOperationsHost composes FleetInventoryService (what products ConnectSoft operates, their instances, releases, editions, objectives and health), FleetRolloutService (moving many instances to a new release, template or library version in waves with guards) and FleetIncidentService (incidents, on-call, customer notifications, off-boarding). It is the platform decision D33 made concrete: the Factory does not stop at generating a product; it operates it, and the operating evidence is as traceable as the generating evidence.

Everything the host does is built on the other platforms' units: a rollout is promotions (BC-24) on environments (Control) provisioned by Runtime Cloud (BC-25), measured by objectives (BC-21), paged through connectors (BC-17), and off-boarded through governance orders (BC-42).

Context and boundaries

flowchart LR
    S["FleetOperationsHost"]
    StudioBff["StudioBff"] -->|sync-http| S
    S -->|grpc| DeliveryHost["DeliveryHost"]
    S -->|grpc| RuntimeCloudHost["RuntimeCloudHost"]
    S -->|grpc| ObservabilityHost["ObservabilityHost"]
    S -->|grpc| ControlPlaneApi["ControlPlaneApi"]
    S -->|grpc| DataEventFoundations["DataEventFoundations"]
    S -->|grpc| IntegrationHost["IntegrationHost"]
    S -->|sync-http| ext_generated_products["ext-generated-products"]
    S -->|sync-http| ext_identity_platform["ext-identity-platform"]
Hold "Alt" / "Option" to enable pan & zoom

The host reads the product's own health through its product gateway (GW-07) and the HealthChecks aggregator; it never reaches into a product's data. Customer tenants of a product are not Factory tenants: the inventory keys instances by the product owner's Factory tenant and the customer tenant id inside the product.

Domain model

None modelled

No aggregates are modelled for this item yet.

No entities modelled.

Entities and value objects

None modelled

No entities or value objects are modelled for this item yet.

Data model and storage

Store Role Engine / profile Tables
Fleet operations store primary azure-sql / nhibernate-sqlserver —

None modelled

No tables are modelled for this item yet.

APIs

Method Path Operation Scope Side effects Idempotency Gateway Summary
GET /fleet/health FleetHealth factory.health.read read natural GW-01 Liveness, readiness and dependency health (fleet store, delivery, runtime cloud, observability, inbox lag).
GET /fleet/meta/summary FleetSummary factory.meta.read read natural GW-03 Fleet-wide counts: operated products, instances by environment class, open incidents, active rollouts.

None modelled

No gRPC methods are modelled for this item yet.

Messages

None modelled

No events are modelled for this item yet.

None modelled

No commands are modelled for this item yet.

None modelled

No consumed events are modelled for this item yet.

Workers and jobs

None modelled

No workers are modelled for this item yet.

Actors and grains

None modelled

No grains are modelled for this item yet.

Sagas and long-running flows

None modelled

No sagas are modelled for this item yet.

flowchart LR
    REL[ReleaseService · ReleaseReady] --> RO[FleetRolloutService]
    AR[AgentRegistryService · template release published] --> RO
    RO -- promotions per wave --> PROMO[EnvironmentPromotionService]
    PROMO -- completed · failed --> INV[FleetInventoryService]
    RC[RuntimeEnvironmentService · observed state] --> INV
    SLO[SloService · breaches] --> INV & RO
    AL[AlertRuleService · alerts] --> INC[FleetIncidentService]
    RO -- halted --> INC
    INC -- export · deletion orders --> DE[RetentionResidencyService]
    INV & RO & INC --> SQL["(fleet-sql)"]
Hold "Alt" / "Option" to enable pan & zoom

Options and configuration

Section Key Type Default Reloadable Secret Summary
Fleet:Host EnabledModules string[] [inventory, rollouts, incidents] no no Modules composed into this host.
OrleansMessaging ServiceName string fleet no no Messaging profile service name.

Metrics and observability

Metric Instrument Unit Dimensions Summary
connectsoft.factory.fleet.host.inbox_lag gauge s module Age of the oldest unprocessed event per module.

Security

Authentication client-credentials
Scopes factory.health.read (Health probes.); factory.meta.read (Fleet summary.)
Roles Operator, PlatformAdmin, Observer
Tenant isolation row-filter
Data classification confidential
Max side-effect class production
Secrets fleet-sql (key-vault, rotate 90 d); messaging-transport (key-vault, rotate 90 d)

Dependencies

Outbound

Target Kind Purpose Failure mode Required
DeliveryHost grpc Releases and promotions per instance. fail-fast yes
RuntimeCloudHost grpc Observed state and provisioning per environment. fail-fast yes
ObservabilityHost grpc Product objectives, alerts and evidence. degrade yes
ControlPlaneApi grpc Projects, environments, approvals for production rollouts, commercial subscriptions. fail-fast yes
DataEventFoundations grpc Export and deletion orders for off-boarding. fail-fast yes
IntegrationHost grpc Paging and customer notifications through connectors. degrade no
ext-generated-products sync-http Product health endpoints and admin APIs through GW-07. degrade yes
ext-identity-platform sync-http Workload identity. fail-fast yes

Inbound

Target Kind Purpose Failure mode Required
StudioBff sync-http Fleet, rollout, incident and off-boarding views. — yes

Failure and recovery

Scenario Detection Recovery Data impact RTO (min)
Fleet store lost readiness restore (RPO 15 min); inventory re-derived from delivery and runtime cloud; open incidents and rollouts resume from the restored state none 240

NFR targets

Target Class value (pilot-batch) Override
latency_p95_ms 0 —
availability_pct 99.5 —
throughput_rps 10 —
rpo_minutes 15 —
rto_minutes 240 —
cost_class medium —

Deployment

Granularity standalone host
Topologies saas-default, hybrid
Runtime aks; replicas 2–4
Ports https 8140, grpc 8142, silo 12140, gateway 31140

Current implementation

Nothing: ConnectSoft operates DerechHaLev by hand with Azure DevOps pipelines, Pulumi stacks and Azure Monitor; no inventory, rollout, incident or off-boarding service exists.

Later capabilities

Fleet-wide cost attribution per product and customer tenant; customer-facing status pages per product; marketplace-listed operated products with self-service onboarding.

Decisions and traceability

Family Ids
FR FR-09, FR-12
FUX FUX-05, FUX-11
NFR NFR-06, NFR-17, NFR-18
XL XL-10, XL-14, XL-16