Skip to main content

Master Architecture Map

The complete operational brain-map of Pasar Seken, every subdomain, service, integration, decision, KPI, and risk on a single navigable canvas.

How to use: Single click any node to highlight its connections. Double click to dive into the detail page. Use filters to focus on specific layers, flows, or risk zones.

Loading architecture map...

What this map covers​

  • Surface: web subdomains, mobile screens, ops modules, cuan widgets
  • Service: edge routes, domain contexts, use cases, adapters, reliability patterns
  • Data: database schemas, table clusters, crons, timers, triggers
  • External: third-party integrations with status (Xendit, Biteship, Resend, OpenAI, Xero, ...)
  • Strategy: locked decisions, brand, KPIs, roadmap tiers, fee phases, competitors
  • Operations: user roles, current team, planned hires, order states, pre-launch gates
  • Risk: open questions, technical debt, known drift, audit findings

Filter recipes​

  • Pre-launch readiness → toggle Risk + Operations layers; switch Filter to "Risk + open questions"
  • Money flows → set Filter preset to "Money flows" and turn off everything except Service + External
  • Mobile platform → Filter preset "Mobile platform", see all 35 screens grouped by feature
  • What needs the Engineer → Filter preset "Engineer's work" + toggle Status to Partial / Planned
  • Pick a flow → use the Flow dropdown (e.g. Buyer Checkout, Seller Disbursement) to highlight the end-to-end path

Edge meanings​

EdgeMeaning
🟦 Data flow (teal)Read or write between systems
🟧 Money flow (terracotta, animated)IDR moves along this path
🟨 User action (amber, dashed)Human triggers the next step
🟪 Webhook (purple, animated)Inbound from a third party
🟧 Trigger (amber, animated)A cron, timer, or DB trigger fires this
⬜ Dependency (grey, dotted)Used by but no data exchange
🟥 Governance / risk (red)A decision constrains this, or a risk affects it
Hierarchy (light grey)Parent/child relationship (no arrow)

How this map was built​

Two source-of-truth payloads feed the map:

  1. architecture-extraction-input/pasarseken.json: codebase audit (technical truth)
  2. architecture-extraction-input/brain.json: wiki extraction (strategic truth)

When the two disagree, the map prefers pasarseken.json and flags the gap as a drift status node in the Risk layer. The brain's 14 unresolved architecture questions are included verbatim so they are visible to whoever opens the map.

The data is generated deterministically by architecture-extraction-input/generate-map.mjs into docs/architecture/map-data.json. To rebuild after the inputs change:

node architecture-extraction-input/generate-map.mjs
npm run build

The map is loaded by the React Flow component in src/components/ArchitectureMap/.