Skip to content
CSA Loom — the Microsoft Fabric experience for Azure tenants where Fabric isn't yet available: lakehouses, warehouses, notebooks, semantic models, Activator rules, Data Agents, across Commercial, GCC, GCC-High, and DoD IL5

CSA Loom — Architecture Decision Records

These ADRs capture the durable rationale behind every CSA Loom architectural choice. Each ADR follows the existing csa-inabox ADR template (Status, Context, Decision, Consequences, Alternatives, References).

Numbering uses the fiab-NNNN series to keep them clearly separated from the parent csa-inabox NNNN series (which uses the same numbering style but for the broader project).

# ADR Status Locked decision ref
fiab-0001 Fabric feature scope Accepted LD-3
fiab-0002 Hybrid compute (Databricks + Synapse Serverless + ADX) Accepted LD-2
fiab-0003 Catalog layering — UC managed + Purview overlay; Purview-primary in Gov; Atlas in IL5 Accepted LD-8
fiab-0004 Direct Lake parity via Premium Import + warm-cache materializer Accepted LD-7
fiab-0005 Activator engine on ADX + NRules + Redis Accepted
fiab-0006 Mirroring engine via Debezium + Spark Structured Streaming + Delta MERGE Accepted LD-9
fiab-0007 Console framework — Next.js + Fluent UI v9 + MSAL BFF Accepted LD-5
fiab-0008 Deployment shape — two-tier (azd + Deploy-to-Azure); Marketplace deferred Accepted LD-4
fiab-0009 Copilot orchestration — Foundry Agent Service in Commercial; MAF + AOAI in Gov Accepted
fiab-0010 Container host — Container Apps in Commercial/GCC; AKS in GCC-High/IL5 Accepted
fiab-0011 Tenancy model — DMZ + DLZ + workspace-as-data-product Accepted LD-6
fiab-0012 Forward migration — OneLake shortcut + hybrid topology first-class Accepted LD-13

How CSA Loom ADRs relate to the parent csa-inabox ADRs

The parent csa-inabox ADRs (docs/adr/0001..0026) document the broader project's choices: ADF + dbt over Airflow, Databricks over OSS Spark, Delta Lake over Iceberg, Bicep over Terraform, Purview over Atlas, etc.

CSA Loom inherits all of those as a baseline. The fiab-NNNN ADRs above add the Loom-specific decisions on top — primarily the brand split, the Console framework, the two-track catalog, the Direct Lake parity strategy, and the deployment shape.

Where a Loom ADR refines or supersedes a parent ADR for the Loom context (e.g. fiab-0008 deployment shape vs ADR-0023 release-please patterns), the Loom ADR cites the parent ADR and explains the delta.

Template

When adding a new ADR (post-v1):

# fiab-NNNN: <Title>

**Status:** Proposed | Accepted | Superseded by fiab-MMMM
**Date:** YYYY-MM-DD
**Locked decision ref:** LD-N (if applicable)

## Context

<What's the problem we're solving? What forces / constraints apply?>

## Decision

<What did we decide? Be specific.>

## Consequences

### Positive
- ...

### Negative
- ...

### Neutral
- ...

## Alternatives considered

| Alternative | Why not chosen |
|---|---|
| ... | ... |

## References

- PRD: `temp/fiab-prd/...`
- Amendments: `temp/fiab-prd/AMENDMENTS.md` §AN
- Research: `temp/fiab-research/...`
- External: links to MS Learn / GitHub / blogs