Skip to content

ADR-0017: Deployment profiles with ConnectSoft-managed SaaS as default

Decision

This page records a decision and its status. A Proposed decision is not binding; an Accepted decision is binding on the Factory until amended or superseded.

  • Status: Accepted 2026-10-09 by the product owner (decision D29; closes Q-04)
  • Date: 2026-10-09
  • Deciders: Dmitry Khaymov (product owner)
  • Tags: deployment, topology, operations

Context

The original target architecture names four deployment patterns (SaaS, hybrid, customer on-premises, hybrid compute) without a default, and the packet left ownership of deployment and operations open (Q-04). Every design page needs to know which placement to assume and which others it must not break.

Decision

  1. Default profile: saas-default — ConnectSoft operates control plane, runtime and data in Azure, tenant-isolated per canonical ADR-0100, in a tenant-selectable region (ADR-0019).
  2. Supported profiles: hybrid, on-prem, hybrid-compute — designed with identical contracts, trust rules, authority rules and observability; differences are confined to placement, network, secrets, upgrades and support.
  3. Each service model entry declares the profiles it supports; a service that cannot run in a profile says so and why.
  4. Pulumi remains the infrastructure-as-code engine in every profile (ADR-0004).

Consequences

  • Positive: one reference deployment for every design page; the hybrid and on-premises profiles stay reachable because the contracts never assume SaaS-only.
  • Negative: hybrid and on-premises operations need runbooks and a shared-responsibility matrix per contract; those are later platform work.
  • Neutral: the deployment-profiles page is the single place that shows per-profile placement.

Alternatives considered

Alternative Why not chosen
Customer-operated as default Slows the first governed workflow and duplicates operations knowledge before the product exists
Four equal profiles, no default Every page would need four variants; no reference to verify against