Skip to content

Subsystem Topology

BluntDashboard should be treated as a system of systems, not as a flat web app. The repo already contains the ingredients for that view:

This page turns those Arcadia viewpoints into a stable engineering topology for the repo itself so that features, fixes, maintenance, and migrations can be sliced along subsystem boundaries rather than around whichever files happen to be nearby.

  • Operational capability is the first partitioning key. Runtime, framework, and hosting come second.
  • Every leaf subsystem should have one dominant mission, one main contract surface, and one obvious verification story.
  • Cross-cutting concerns live in dedicated platform subsystems instead of being smeared across domain patches.
  • A change should be named and reviewed at the lowest subsystem that fully contains it.
  • If a change crosses sibling subsystems, prefer a small patch train over one large mixed PR.
PlaneWhy it existsArcadia anchorCurrent repo anchorsTarget runtime anchors
EXP Staff ExperienceStaff-facing navigation, pages, and workflow entry pointsOA -> LAclient/src/App.tsx, client/src/pages/**, client/src/components/**frontend on CF Pages
DOM Operational DomainsCore business behaviors for analytics, taxonomy, combos, assets, and fulfillmentLAserver/routes/**, server/services/**, domain-focused pages and docsdashboard-api Worker + domain modules
ORCH Workflow & Integration FabricAsync jobs, external platform mediation, sync/replay, and long-running proceduresLA -> PAsupabase/functions/**, workers/**, scripts/**ingest Worker, Queues, Workflows, Cron
DATA Data & Knowledge FabricDomain tables, marts, artifacts, schemas, and API/job contractsSA -> LA -> PAsupabase/migrations/**, shared/schema.ts, casestry-api-spec.json, docs/commerce-schema/**PlanetScale, R2, shared Zod/Drizzle contracts
PLAT Platform Control PlaneIdentity, observability, deployment, secrets, and environment wiringSA -> PA -> BSserver/auth.ts, .wrangler/, vercel.json, worker wrangler.toml, env docsCF Access, Wrangler bindings, Hyperdrive, Pipelines, alerts
GOV Shared ReferenceArchitecture memory, ADRs, scenarios, runbooks, and migration guidanceBS + decision capitalizationdocs/src/content/docs/**, docs/legacy/**, top-level runbooksThe living architectural reference for all runtime surfaces
BluntDashboard
|- EXP Staff Experience
| |- EXP.shell
| |- EXP.performance-workbench
| |- EXP.creative-workbench
| `- EXP.fulfillment-workbench
|- DOM Operational Domains
| |- DOM.performance-intelligence
| |- DOM.taxonomy-attribution
| |- DOM.combo-operations
| |- DOM.asset-redundancy
| `- DOM.fulfillment-operations
|- ORCH Workflow & Integration Fabric
| |- ORCH.shopify-sync
| |- ORCH.asset-and-export-jobs
| `- ORCH.casestry-and-release
|- DATA Data & Knowledge Fabric
| |- DATA.domain-store
| |- DATA.analytics-store
| `- DATA.contracts-and-schema
|- PLAT Platform Control Plane
| |- PLAT.identity-and-access
| |- PLAT.observability
| `- PLAT.deployment-and-environment
`- GOV Shared Reference
|- GOV.scenarios-and-architecture
`- GOV.runbooks-and-migration

Use these IDs as the canonical coordinate system for PRs, maintenance work, ADRs, and release notes.

Subsystem IDResponsibilityPrimary repo lociMain scenarios
EXP.shellRouting, auth wrappers, layout, shared dashboard chrome, query client wiringclient/src/App.tsx, client/src/lib/protected-route.tsx, client/src/components/dashboard/**, client/src/hooks/use-auth.tsxAll staff workflows
EXP.performance-workbenchMetrics, tag analytics, tag manager, designer viewsclient/src/pages/performance-metrics-page.tsx, client/src/pages/tag-analytics-page.tsx, client/src/pages/tag-manager-page.tsxPerformance Metrics, Tag Analytics, Tag Classification, Designer Assignment
EXP.creative-workbenchCombo logs, templates, suggestions, product asset interactionclient/src/pages/combo-logs-page.tsx, client/src/pages/combo-templates-page.tsx, client/src/pages/combo-suggestions-page.tsx, client/src/pages/product-assets-page.tsxCombo Log CRUD, Combo Templates, Combo Suggestions, Asset Ingest
EXP.fulfillment-workbenchCSV generation, fulfillment monitoring, order reconciliation flowsclient/src/pages/csv-generator-page.tsx, client/src/pages/fulfillment-monitoring-page.tsx, client/src/components/order-reconciliation-section.tsxCSV Export, Fulfillment Monitoring, Order Lookup
Subsystem IDResponsibilityPrimary repo lociMain scenarios
DOM.performance-intelligenceMeasurement retrieval, classification specs, performance summaries, tag analytics behaviorserver/routes/performance-metrics.ts, server/routes/tag-analytics.ts, docs/src/content/docs/scenarios/performance-metrics.mdPerformance Metrics, Tag Analytics
DOM.taxonomy-attributionTag classification, tag groups, designer assignment, taxonomy semanticsserver/routes/tag-classifications.ts, server/routes/tag-groups.ts, server/routes/designers.tsTag Classification, Tag Groups, Designer Assignment
DOM.combo-operationsCombo reports, imports, templates, suggestions, acceptance into logsserver/routes/combo-logs.ts, server/routes/combo-logs-import.ts, combo pages, combo docsCombo Log CRUD, Combo Templates, Combo Suggestions
DOM.asset-redundancyAsset catalog, dedupe, product linkage, artifact metadata, design asset lifecycleserver/routes/asset-ingest.ts, server/services/asset-ingest.ts, asset pages, asset migrationsAsset Ingest
DOM.fulfillment-operationsOrder lookup, CSV generation semantics, fulfillment monitoring, supplier-facing operationssupabase/functions/generate-casestry-orders-csv/**, supabase/functions/shopify-order-lookup/**, fulfillment pages and docsCSV Export, Fulfillment Monitoring, Order Lookup
Subsystem IDResponsibilityPrimary repo lociMain scenarios
ORCH.shopify-syncShopify bulk or paginated sync, product tag refresh, mart refresh triggers, replay/backfill sequencingserver/services/shopify-sync.ts, supabase/functions/sync-performance-data/**, supabase/functions/sync-product-tags/**, backfill scriptsDaily Shopify Bulk Sync, Product Tag Sync
ORCH.asset-and-export-jobsAsset ingest jobs, export generation jobs, retry/cleanup scripts, file movement between external sources and object storagesupabase/functions/ingest-asset/**, supabase/functions/generate-casestry-orders-csv/**, scripts/backfill-assets.ts, scripts/retry-failed-assets.tsAsset Ingest, CSV Export
ORCH.casestry-and-releaseCasestry webhook handling, order hold/release automation, reconciliation, external supplier workflow mediationworkers/shopify-order-webhook/**, workers/order-release-processor/**, workers/shopify-casestry-reconciliation/**Fulfillment and order release operational flows
Subsystem IDResponsibilityPrimary repo lociMain scenarios
DATA.domain-storeTransactional and operational tables, migrations, warehouse-era raw/core/mart structures, artifact recordssupabase/migrations/**, docs/src/content/docs/data-model/schema.md, docs/commerce-schema/**All domain scenarios
DATA.analytics-storePerformance marts, run history, telemetry, summary/read models, future R2 Iceberg layersdocs/src/content/docs/data-model/pipeline.md, materialized-view migrations, run-history migrationsPerformance Metrics, Tag Analytics, sync scenarios
DATA.contracts-and-schemaShared types, API specs, queue payloads, ontology-backed naming, schema semanticsshared/schema.ts, casestry-api-spec.json, docs/src/content/docs/architecture/api-reference.md, docs/commerce-schema/00-ontology.mdAll scenario contracts
Subsystem IDResponsibilityPrimary repo lociMain scenarios
PLAT.identity-and-accessAuth model, session handling, access enforcement, future CF Access cutoverserver/auth.ts, client/src/hooks/use-auth.tsx, client/src/contexts/AuthContext.tsx, docs/src/content/docs/operations/authentication.mdAll staff workflows
PLAT.observabilityHealth reporting, run tracking, alerting, telemetry, error visibilitydocs/src/content/docs/operations/observability.md, run-history migrations, worker docs, health endpointsAll async and operational scenarios
PLAT.deployment-and-environmentBuild/deploy wiring, secrets, Wrangler/Vercel config, environment partitioning, infra bindingsvercel.json, .wrangler/, worker wrangler.toml, shopify.app.toml, setup docsDeployment, migration, cutover
Subsystem IDResponsibilityPrimary repo lociMain scenarios
GOV.scenarios-and-architectureArchitecture site, scenarios, ADRs, topology, target design, architecture continuity across OA/SA/LA/PAdocs/src/content/docs/**, especially architecture/** and scenarios/**All scenarios
GOV.runbooks-and-migrationOperational runbooks, migration plans, rollout plans, implementation status, living docsdocs/LIVING_DOCS.md, docs/ROLLOUT_PLAN.md, docs/ORDER_*, docs/legacy/**Migration and cutover

Binding rules between current and target architecture

Section titled “Binding rules between current and target architecture”

The topology intentionally spans both the current repo and the target rewrite architecture.

  • EXP is already a coherent plane in the React app, even though it is still coupled to Supabase auth.
  • DOM is currently split between Express route modules and direct client-side Supabase access; the target state consolidates these behaviors behind the dashboard-api Worker.
  • ORCH is the most fragmented plane today because its responsibilities are split across Supabase Edge Functions, Cloudflare Workers, and ad hoc scripts. The topology treats them as one fabric so they can be retired or migrated in a controlled order.
  • DATA is partly real and partly aspirational today: Supabase migrations are the operational truth, while shared/schema.ts and the docs carry target-state contract intent. Both belong in one governed fabric.
  • PLAT contains the hardest cutover seams because auth, secrets, deployment, and observability are changing at the same time.
  • GOV is not optional overhead. Under Arcadia, it is the shared reference that keeps OA, LA, PA, and BS aligned as the repo evolves.
  • Prefer leaf ownership first. A patch that only changes combo suggestion scoring should stay inside DOM.combo-operations or ORCH.asset-and-export-jobs, not a generic “analytics” bucket.
  • Use parent-plane ownership only when a change genuinely spans multiple child subsystems under the same plane.
  • Treat DATA.*, PLAT.*, and GOV.* changes as higher-leverage than average because they alter shared contracts, platform posture, or the architectural reference itself.
  • When a feature crosses planes, the default patch order should be DATA -> ORCH or DOM -> EXP -> PLAT or GOV, not the reverse.

The operational GitOps rules built on this topology live in Change Topology.